[Soot-list] Base of array reference is not an array Exception

Eric Bodden eric.bodden at ec-spride.de
Tue Mar 20 03:59:11 EDT 2012


Hi Heejong.

Well, I think the exception is pretty much speaking for itself. You
would probably have a situation such as...

LinkedList l = ...
x = l[5];

In other words, your code is using an array ref on something that is
not an array. It appears that your type inference is just incorrect.

Eric

On 20 March 2012 04:57, Heejong Lee <heejong at gmail.com> wrote:
> Hi, Eric.
>
> Yes, maybe you are right.
> Actually, the target bytecode is generated from
> dalvik bytecode with some type inference.
>
> Could you give me a hint about exactly what type
> inconsistency throws the following exception in Soot?
> Or if there is a related paper describing fast type
> inference algorithm currently used in Soot, I can
> investigate it myself.
>
> Thanks!
>
> -- Heejong
>
>
> On Mon, Mar 5, 2012 at 11:55 PM, Eric Bodden <eric.bodden at ec-spride.de> wrote:
>> Hello Heejong.
>>
>> My suspicion would just be that your bytecode is damaged for some reason.
>>
>> Eric
>>
>> On 6 March 2012 01:21, Heejong Lee <heejong at gmail.com> wrote:
>>> Hi all,
>>> I've encountered a following exception:
>>>
>>>> java -jar soot-2.5.0.jar -cp . org.xbill.DNS.spi.DNSJavaNameService -pp
>>> Exception in thread "main" java.lang.RuntimeException: Base of array
>>> reference is not an array!
>>>        at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval_(AugEvalFunction.java:177)
>>>        at soot.jimple.toolkits.typing.fast.AugEvalFunction.eval(AugEvalFunction.java:41)
>>>        at soot.jimple.toolkits.typing.fast.TypeResolver.applyAssignmentConstraints(TypeResolver.java:407)
>>>        at soot.jimple.toolkits.typing.fast.TypeResolver.inferTypes(TypeResolver.java:113)
>>>        at soot.jimple.toolkits.typing.TypeAssigner.internalTransform(TypeAssigner.java:101)
>>>        at soot.BodyTransformer.transform(BodyTransformer.java:51)
>>>        at soot.Transform.apply(Transform.java:104)
>>>        at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:66)
>>>        at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
>>>        at soot.Pack.apply(Pack.java:124)
>>>        at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:117)
>>>        at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:89)
>>>        at soot.SootMethod.retrieveActiveBody(SootMethod.java:322)
>>>        at soot.jimple.toolkits.annotation.LineNumberAdder.internalTransform(LineNumberAdder.java:44)
>>>        at soot.PackManager.runPacks(PackManager.java:332)
>>>        at soot.Main.run(Main.java:198)
>>>        at soot.Main.main(Main.java:141)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>        at java.lang.reflect.Method.invoke(Method.java:616)
>>>        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
>>>
>>> You can regenerate the exception with attached class file.
>>> I suspect there is something wrong in lcas_(BytecodeHierarchy.java) method
>>> but I could not solve the problem further because I have limited knowledge about
>>> typing mechanism in soot.
>>>
>>> Does anyone help me to solve this problem?
>>>
>>> Thanks,
>>>
>>> --
>>> Heejong Lee
>>>
>>> Associate Research Engineer
>>> Program Analysis Division
>>> Fasoo.com, Inc. (www.spa-arrow.com)
>>>
>>> _______________________________________________
>>> Soot-list mailing list
>>> Soot-list at sable.mcgill.ca
>>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>>
>>
>>
>>
>> --
>> Eric Bodden, Ph.D., http://bodden.de/
>> Head of Secure Software Engineering Group at EC SPRIDE
>> Principal Investigator in Secure Services at CASED
>> Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
>> Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt
>
>
>
> --
> Heejong Lee
>
> Associate Research Engineer
> Program Analysis Division
> Fasoo.com, Inc. (www.spa-arrow.com)



-- 
Eric Bodden, Ph.D., http://bodden.de/
Head of Secure Software Engineering Group at EC SPRIDE
Principal Investigator in Secure Services at CASED
Tel: +49 6151 16-75422    Fax: +49 6151 16-72051
Room 3.2.14, Mornewegstr. 30, 64293 Darmstadt


More information about the Soot-list mailing list