public class JvmTaintAbstractState extends JvmAbstractState<SetAbstractState<JvmTaintSource>>
JvmTaintAbstractState
is a JvmAbstractState
with features specific to taint
analysis.DEFAULT_FIELD, frame, heap, programLocation, staticFields, topLocation
Constructor and Description |
---|
JvmTaintAbstractState(JvmCfaNode programLocation,
JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame,
JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap,
MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)
Create a taint JVM abstract state.
|
Modifier and Type | Method and Description |
---|---|
JvmTaintAbstractState |
copy()
Creates a copy of itself.
|
JvmTaintAbstractState |
join(JvmAbstractState<SetAbstractState<JvmTaintSource>> abstractState)
Computes a join over itself and the
abstractState . |
<T> void |
setObjectTaint(T object,
SetAbstractState<JvmTaintSource> value)
Adds transitively taints from
value to all fields of object . |
clearOperandStack, equals, getArrayElementOrDefault, getFieldOrDefault, getFieldOrDefault, getFrame, getHeap, getProgramLocation, getStaticFields, getStaticOrDefault, getVariableOrDefault, hashCode, isLessOrEqual, newArray, newObject, newObject, peek, peek, peekOrDefault, peekOrDefault, pop, popOrDefault, push, pushAll, setArrayElement, setField, setField, setProgramLocation, setStatic, setVariable
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
isLess
getPrecision, getStateByName
public JvmTaintAbstractState(JvmCfaNode programLocation, JvmFrameAbstractState<SetAbstractState<JvmTaintSource>> frame, JvmHeapAbstractState<SetAbstractState<JvmTaintSource>> heap, MapAbstractState<java.lang.String,SetAbstractState<JvmTaintSource>> staticFields)
programLocation
- a CFA nodeframe
- a frame abstract stateheap
- a heap abstract statestaticFields
- a static field tablepublic <T> void setObjectTaint(T object, SetAbstractState<JvmTaintSource> value)
value
to all fields of object
.public JvmTaintAbstractState join(JvmAbstractState<SetAbstractState<JvmTaintSource>> abstractState)
LatticeAbstractState
abstractState
.join
in interface LatticeAbstractState<JvmAbstractState<SetAbstractState<JvmTaintSource>>>
join
in class JvmAbstractState<SetAbstractState<JvmTaintSource>>
public JvmTaintAbstractState copy()
AbstractState
copy
in interface AbstractState
copy
in class JvmAbstractState<SetAbstractState<JvmTaintSource>>