[Soot-list] How verify array index value is within array bounds?

John Dean jdean4 at kc.rr.com
Thu Jul 19 18:27:27 EDT 2012


Hello,

I'm trying to verify that an array element access is safe in terms of the
index being within the bounds of the array.

In exploring the soot api, JArrayRef looks promising, with its getBase and
getIndex methods. Is there a way to get the size of the array, so I can
compare the index to it?

 

Or is there a better way to solve my problem? I see that there are
ArrayElement and ArrayBoundsChecker classes, but their methods don't look
all that promising to me. 

 

Thanks,

John

 

From: soot-list-bounces at sable.mcgill.ca
[mailto:soot-list-bounces at sable.mcgill.ca] On Behalf Of Z
Sent: Thursday, July 19, 2012 5:44 AM
To: Soot List
Subject: [Soot-list] Using SOOT's dataflow classes for static numeric
analysis that has infinite-height abstract domain and needs widening
operator for termination

 

Hello, 

Could you tell me please, how to use SOOT's dataflow framework to infer
properties that can not be represented by the Flowset interface ?

For example,  to implement a simple numeric analysis like interval analysis
(which infers the possible interval range of each numeric variable at each
program point), it seems no more possible to use  directly the generic
ForwardAnalysis class, since the iteration strategy of the class assume that
the height of the lattice is finite, whereas in most numeric analysis, the
domain is not finite and the termination condition is ensured by a
non-trivial widening operator.

So if I understand correctly, one has to overload the doAnalysis of
FowardAnalysis for writing a static numeric analyses?  

Thanks for your ideas. 
Zell.  

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20120719/098be783/attachment.html 


More information about the Soot-list mailing list