[Soot-list] Spark Error with Flowdroid
Marc-André Laverdière-Papineau
marc-andre.laverdiere-papineau at polymtl.ca
Mon Jun 17 10:02:21 EDT 2013
Hello,
I don't mind so much that workaround - I don't have much code that
relies on the name, and I can code an easy utility to fetch it. And
while I'm at it, I can add what is needed to get the line number and the
like :)
As long as the tag is not messed up with in the rest of the soot pipeline...
My only concern is the 'probable' part. I need to report to the
programmer that there is a security issue, and I'm sure that they'd like
precise report. So whatever information is in the tag needs to be sound.
I am not super excited about an over-approximation, but that is better
than the alternative.
That being said, I don't really understand the technical reasons behind
this (but that's because I don't know the JVM spec much...)
Marc-André Laverdière-Papineau
Doctorant - PhD Candidate
On 16/06/13 03:35 PM, Saswat Anand wrote:
>
> Quentin's proposal of storing the local var mapping as tags inside soot
> makes very good sense; it is consistent with how other metadata such as
> line number from the class file are stored in soot, and wont break soot
> when such metadata isnt consistent.
>
>
> On Jun 16, 2013 5:46 AM, "Quentin Sabah" <quentin.sabah at inria.fr
> <mailto:quentin.sabah at inria.fr>> wrote:
>
> So I managed to get the .class
>
> I think what we have here is the perfect example of the limits of
> use-original-names in the current implementation.
>
> The local "l8" indicates that we are tracking the local slot #8.
> However, the local variable name table isn't complete, the name
> "part" is only flagged for 3 bytecodes [463:463+3]. There are many
> other use of slot 8 that should be associated with "part", but they
> aren't.
>
> LocalVariableTable:
> Start Length Slot Name Signature
> 0 467 0 this
> Lcom/oreilly/servlet/MultipartRequest;
> 0 467 1 request
> Ljavax/servlet/http/HttpServletRequest;
> 0 467 2 saveDirectory Ljava/lang/String;
> 0 467 3 maxPostSize I
> 0 467 4 encoding Ljava/lang/String;
> 0 467 5 policy
> Lcom/oreilly/servlet/multipart/FileRenamePolicy;
> 78 388 6 dir Ljava/io/File;
> 163 303 7 parser
> Lcom/oreilly/servlet/multipart/MultipartParser;
> 183 90 8 queryParameters Ljava/util/Hashtable;
> 190 83 9 queryParameterNames
> Ljava/util/Enumeration;
> 202 61 10 paramName Ljava/lang/Object;
> 214 49 11 values [Ljava/lang/String;
> 223 40 12 newValues Ljava/util/Vector;
> 226 37 13 i I
> 463 3 8 part
> Lcom/oreilly/servlet/multipart/Part;
> 283 172 9 name Ljava/lang/String;
> 298 54 10 paramPart
> Lcom/oreilly/servlet/multipart/ParamPart;
> 305 47 11 value Ljava/lang/String;
> 319 33 12 existingValues Ljava/util/Vector;
> 370 85 10 filePart
> Lcom/oreilly/servlet/multipart/FilePart;
> 377 78 11 fileName Ljava/lang/String;
>
> Because in Soot we rely too much on this table when
> use-original-names is enabled, we generate two Local for the same
> local variable in this case. It can be corrected, the original name
> should be some kind of Tag associated with each Unit, telling what
> probable original name should be associated with each Local.
>
> --
> Quentin Sabah, CIFRE Ph.D. student
> Grenoble University
> INRIA-SARDES | STMicroelectronics/AST
> Montbonnot, France | Grenoble, France
> mailto:quentin.sabah at inria.fr <mailto:quentin.sabah at inria.fr> |
> mailto:quentin.sabah at st.com <mailto:quentin.sabah at st.com>
> phone: +33 476 61 52 42 <tel:%2B33%20476%2061%2052%2042> |
> phone: +33 476 58 44 14 <tel:%2B33%20476%2058%2044%2014>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
>
>
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
More information about the Soot-list
mailing list