[Soot-list] how does infoFlowAnalysis handle interfaceinvoke ?

jiangfan shi jiangfan.shi at gmail.com
Mon Aug 18 09:45:12 EDT 2008


Hi,

I found the infoFlowAnalysis does not do dynamic bindings for the
interfaceinvoke statement. Am I right?

For exmaple, I have an interface Interf1, which defines a method
open(). Two implementations impl1 and impl2 implement the Interf1.
Then I have following simplified statements;

==============
Interf1 tmp1;

if(tmp1!=null){
      tmp1.open().
}

==============

For this piece of code, the infoFlowAnalysis does not give two
possible method invocations, impl1.open() and impl2.open().
Furthermore the infoFlowAnalysis does not compute flow Summary for
these two methods.

For the following piece of code, the infoFlowAnalysis does work
because there are explicitly assignments from impl1 or impl2 to the
Interf1.

==============
Interf1 tmp1;
if(args[0]=1){
     tmp1=new impl1();
else
     tmp1=new impl2();

tmp1.open().
}

==============
In this case, the infoFlowAnalysis will compute summaries for the two
methods,  impl1.open() and impl2.open().

So my question is that if the infoFlowAnalysis handle the
interfaceinvoke statement. Maybe I did not find some configurations of
the infoFlowAnalsysis, or I miss some other options.

Thanks you in advance!

Jiangfan


More information about the Soot-list mailing list