Skip to content

Variable not defined before using it as a call base #1

@ghost

Description

Hello,

I'm using COAL on Android applications. Before launching it, I use FlowDroid to get call graph.

On many apps, I encounter the following issue :

java.lang.IndexOutOfBoundsException: Index: 0
        at java.base/java.util.Collections$EmptyList.get(Collections.java:4483)
        at edu.psu.cse.siis.coal.arguments.MySmartLocalDefs.<init>(ConstraintCollector.java:247)
        at edu.psu.cse.siis.coal.arguments.CCVisitor.<init>(ConstraintCollector.java:319)
        at edu.psu.cse.siis.coal.arguments.ConstraintCollector.handleMethod(ConstraintCollector.java:132)
        at edu.psu.cse.siis.coal.arguments.ConstraintCollector.globalCollection(ConstraintCollector.java:172)
        at edu.psu.cse.siis.coal.arguments.StringValueAnalysis.initialize(StringValueAnalysis.java:50)
        at edu.psu.cse.siis.coal.PropagationSceneTransformer.internalTransform(PropagationSceneTransformer.java:63)
        at soot.SceneTransformer.transform(SceneTransformer.java:36)
        at soot.Transform.apply(Transform.java:105)
        at soot.ScenePack.internalApply(ScenePack.java:37)
        at soot.Pack.apply(Pack.java:118)

Here is a snippet to reproduce it :

public class Test1 extends Activity {
    public void printString(String s) {
        StringBuilder sb = new StringBuilder();
        sb.append(s);
        sb = new StringBuilder().append(sb).append(s);
        System.out.print(sb.toString());
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        printString("abc");
    }
}

Best,

Séverine

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions