[Soot-list] Issue with trap generation in Jimple

Eric Bodden eric.bodden at ec-spride.de
Wed Jun 13 09:40:38 EDT 2012


Hi all.

I actually got this resolved. It turns out that ExceptionalUnitGraph
already has a boolean argument to its constructor that let's one
control the semantics exactly for this case. I actually wonder whether
we should not change the default, though.

Eric

On 13 June 2012 17:49, Khilan Gudka <khilan at doc.ic.ac.uk> wrote:
> Ah of course! sorry for not spotting that; then what you suggest seems
> plausible :)
>
> --
> Khilan Gudka
> PhD Student
> Department of Computing
> Imperial College London
> http://www.doc.ic.ac.uk/~khilan/
>
>
>
> On 13 June 2012 17:11, Eric Bodden <eric.bodden at ec-spride.de> wrote:
>>
>> Hello.
>>
>> >
>> > A couple of questions to see if I understand things correctly...
>> >
>> > 1) Can the return statement throw an exception? If it can then will u
>> > still
>> > need to insert an exceptional edge from the assignment to the handler?
>>
>> It does not matter whether it can, because it's outside the trap. The
>> trap ends at label5.
>>
>> > 2) What happens if an un-related field store is inserted between the
>> > assignment and the return, like $r1.f = $r2. I.e so you have...
>> >
>> > $u0 = 1
>> > $r1.f = $r2
>> > return $u;
>>
>> Same as before. It will be outside the trap.
>>
>> The issue is really the execution of "$u0 = 1". It will have *no*
>> effect if it throws an exception, and hence the CFG edge should go
>> from *before* the statement to the handler, I believe.
>>
>> Eric
>
>



-- 
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