com.h3xstream.findsecbugs.taintanalysis
Class TaintAnalysis

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.BasicAbstractDataflowAnalysis<Fact>
      extended by edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis<Fact>
          extended by edu.umd.cs.findbugs.ba.ForwardDataflowAnalysis<FrameType>
              extended by edu.umd.cs.findbugs.ba.FrameDataflowAnalysis<Taint,TaintFrame>
                  extended by com.h3xstream.findsecbugs.taintanalysis.TaintAnalysis
All Implemented Interfaces:
edu.umd.cs.findbugs.ba.DataflowAnalysis<TaintFrame>

public class TaintAnalysis
extends edu.umd.cs.findbugs.ba.FrameDataflowAnalysis<Taint,TaintFrame>

Implements taint dataflow operations, in particular meeting facts, transfer function is delegated to TaintFrameModelingVisitor

Author:
David Formanek

Constructor Summary
TaintAnalysis(org.apache.bcel.generic.MethodGen methodGen, edu.umd.cs.findbugs.ba.DepthFirstSearch dfs, TaintMethodSummaryMap methodSummaries)
           
 
Method Summary
 TaintFrame createFact()
           
 void initEntryFact(TaintFrame fact)
           
 void meetInto(TaintFrame fact, edu.umd.cs.findbugs.ba.Edge edge, TaintFrame result)
           
protected  void mergeValues(TaintFrame frame, TaintFrame result, int i)
           
 void transferInstruction(org.apache.bcel.generic.InstructionHandle handle, edu.umd.cs.findbugs.ba.BasicBlock block, TaintFrame fact)
           
 
Methods inherited from class edu.umd.cs.findbugs.ba.FrameDataflowAnalysis
copy, getFactAtPC, getFactBeforeExceptionCheck, getLastUpdateTimestamp, isFactValid, isTop, makeFactTop, mergeInto, modifyFrame, same, setLastUpdateTimestamp
 
Methods inherited from class edu.umd.cs.findbugs.ba.ForwardDataflowAnalysis
getBlockOrder, getDepthFirstSearch, isForwards
 
Methods inherited from class edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis
getFactAfterLocation, getFactAtLocation, transfer
 
Methods inherited from class edu.umd.cs.findbugs.ba.BasicAbstractDataflowAnalysis
edgeTransfer, factToString, finishIteration, getFactOnEdge, getResultFact, getStartFact, resultFactIterator, startIteration
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TaintAnalysis

public TaintAnalysis(org.apache.bcel.generic.MethodGen methodGen,
                     edu.umd.cs.findbugs.ba.DepthFirstSearch dfs,
                     TaintMethodSummaryMap methodSummaries)
Method Detail

mergeValues

protected void mergeValues(TaintFrame frame,
                           TaintFrame result,
                           int i)
                    throws edu.umd.cs.findbugs.ba.DataflowAnalysisException
Specified by:
mergeValues in class edu.umd.cs.findbugs.ba.FrameDataflowAnalysis<Taint,TaintFrame>
Throws:
edu.umd.cs.findbugs.ba.DataflowAnalysisException

transferInstruction

public void transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
                                edu.umd.cs.findbugs.ba.BasicBlock block,
                                TaintFrame fact)
                         throws edu.umd.cs.findbugs.ba.DataflowAnalysisException
Specified by:
transferInstruction in class edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis<TaintFrame>
Throws:
edu.umd.cs.findbugs.ba.DataflowAnalysisException

createFact

public TaintFrame createFact()

initEntryFact

public void initEntryFact(TaintFrame fact)
                   throws edu.umd.cs.findbugs.ba.DataflowAnalysisException
Throws:
edu.umd.cs.findbugs.ba.DataflowAnalysisException

meetInto

public void meetInto(TaintFrame fact,
                     edu.umd.cs.findbugs.ba.Edge edge,
                     TaintFrame result)
              throws edu.umd.cs.findbugs.ba.DataflowAnalysisException
Throws:
edu.umd.cs.findbugs.ba.DataflowAnalysisException


Copyright © 2015. All rights reserved.