FlowDroid
FlowDroid copied to clipboard
PointsToAnalysis may be not available after InterproceduralConstantValuePropagator
The Problem
In InterproceduralConstantValuePropagator, Scene.v().addClass will be called in some cases to add exceptionClass when fixing some exceptions. However, the addClass method modifies class hierarchy and some previous analsysis results (e.g., activePointsToAnalysis are set to null.
So, if exceptionClass is added in optimization, previous PointsToAnalysis created by SparkTransformer will be not available to the following analysis.
Expected Behaviour
PointsToAnalysis should be available after InterproceduralConstantValuePropagator
Possisble Fix
I tried to add exceptionClass after soot is inited, and change the original addClass in InterproceduralConstantValuePropagator to getSootClass. The result looks right. Maybe re-analysis the PAG is better.