186 Commits (2e66dcfac41360427a449ce0a94bc6eb07c8cd72)

Author SHA1 Message Date
Martino Luca da2717ff2a Migrate BAD_POINTER_COMPARISON check from backend to linters infra
8 years ago
Josh Berdine ccd32690d7 Refactor Sil.call_flags into separate CallFlags module
9 years ago
Josh Berdine eefe05b240 Refactor Sil.Subtype into separate Subtype module
9 years ago
Josh Berdine aba67b4a2a Refactor Sil.binop into separate Binop module
9 years ago
Josh Berdine 2154c2c483 Refactor Sil.unop into separate Unop module
9 years ago
Josh Berdine 9487cab145 Refactor Sil.const into separate Const module
9 years ago
Josh Berdine a1b680c473 Move attributes from const to exp
9 years ago
Josh Berdine 5f309ebb23 Tighten type of Aobjc_null to reduce recursion
9 years ago
Josh Berdine 32d09545e2 Closure values are not constants
9 years ago
Josh Berdine c5ce74f3d3 Exception values are not constants
9 years ago
Dulma Churchill cf72de9460 Make ObjC virtual functions return nil if they are called with nil, even if they are going to be skipped.
9 years ago
Josh Berdine bbec166174 Refactor Sil.typ into separate Typ module
9 years ago
Josh Berdine a6a766b5f5 Refactor Sil.Int into separate IntLit module
9 years ago
Josh Berdine 229ca26c8b Optimize normalization, substitution, renaming of array types
9 years ago
Jeremy Dubreil 17da853fa8 Do not angelically remove the file attribute on the reciever for virtual calls
9 years ago
Josh Berdine a85a88d145 Extend Sizeof with final extensible array length
9 years ago
Sam Blackshear f45a7ec1eb using taint kind in taint sink specifications
9 years ago
Sam Blackshear 3b6fa0939b adding taint kind to taint source specifications
9 years ago
Josh Berdine 3e2fa59262 Reimplement command line options
9 years ago
Sam Blackshear 20925df57c removing unused deallocate param in nullify instr
9 years ago
Sam Blackshear 442cf66fdc don't fail when nullifying a var not in the prop
9 years ago
Dulma Churchill 54a3bdd455 Load the attribute file to get the getter/setter info from the procdesc
9 years ago
Sam Blackshear 77791b7e8e warn on deref of nullable skip function
9 years ago
Sam Blackshear 843bcc1576 support tainting of annotated fields
9 years ago
Sam Blackshear e1e62be243 supporting new @PrivacySource/PrivacySink annotations
9 years ago
Jules Villard ac6ef1d9f6 kill Sil.Goto
9 years ago
Josh Berdine b881887bf2 Refactor Utils.SymOp into separate module
9 years ago
Josh Berdine e1020c8ebe Remove -open(Utils) compile flag hack
9 years ago
Sam Blackshear 378ab69558 consistent API and usage for extracting Java types from strings
9 years ago
Josh Berdine 213fe46c89 Move ml_loc and operations to Logging
9 years ago
Josh Berdine b4bc7904f5 Move SymExec.lookup_java_typ_from_string to Tenv
9 years ago
Josh Berdine 61d2a50809 Simplify interface of SymExec
9 years ago
Josh Berdine fd062cf736 Refactor SymExec.ModelBuiltins into toplevel module
9 years ago
Cristiano Calcagno 509a666ee0 Refactor Sil.pvar into a separate module.
9 years ago
Cristiano Calcagno 53702e43e8 Created IR folder for the intermediate representaion files.
9 years ago
Sam Blackshear c03f39f20c Fixing some issues with Obj-C blocks
9 years ago
Josh Berdine 2dcd93204c Refactor SymExec.Builtin into toplevel module
9 years ago
Cristiano Calcagno c198d76631 Clean up the Procname module, and remove remaining assert false
9 years ago
Sam Blackshear ab1ac822f6 Replacing Ctuple with Cclosure
9 years ago
Cristiano Calcagno 86304b3d9c Prevent assert false from occurring on Java functions in Procname.
9 years ago
Dulma Rodriguez 10a14a7324 Translate CXXTypeidExpr
9 years ago
Sam Blackshear 63f8a3e709 refactoring facebook-specific and open-source taint lists to fix open-source tests
9 years ago
Cristiano Calcagno b2969820a4 Avoid loading the cfg explicitly to find a proc desc.
9 years ago
jrm 793911c847 Add the possibility to analyze procedure descriptions on-demand without serialization
9 years ago
Sam Blackshear 7fb8f8b651 adding type-specific taint error messages
9 years ago
Sam Blackshear 15f0c7e384 adding "kind" for taint attribute
9 years ago
Cristiano Calcagno 494dabf638 Simplify code in SymExec: cleanup and look up cfg.
9 years ago
Sam Blackshear 2d89426170 fixing tenv_lookup
9 years ago
jrm 082ca6a90a Initial support for lazy dynamic dispatch
9 years ago
Dino Distefano b7d6f2a3bd Fixed problem with null pointer dereference in c library models.
9 years ago
Cristiano Calcagno 89a2f2a7b4 Keep only on-demand infrastructure and delete the rest or the infrastructure.
9 years ago
Cristiano Calcagno 021cf213a6 Bypass the interprocedural algorithm in Fork with ondemand, and replace it with a simple iteration.
9 years ago
jrm 8ce56968d6 no longer report NULL_TEST_AFTER_DEREFERENCE in tracing mode
9 years ago
Peter O'Hearn bec08365de Part 1 of double unlock, locks as resources
9 years ago
Cristiano Calcagno 16402cddc0 Save global state for abstraction for on-demand.
9 years ago
Sam Blackshear cd002e5c46 fixing angelic mode for struct values passed by reference
9 years ago
Cristiano Calcagno c570d97ad8 Cleanup code for registering builtins.
9 years ago
Josh Berdine de31246399 Builtin.builtin_plain_functions is no longer used
9 years ago
Josh Berdine 77b22ded03 Warn on unused identifiers
9 years ago
Josh Berdine 02056079cf Warn of unused values
9 years ago
Sam Blackshear 091f31dd17 translating monitor exit/enter
9 years ago
Dulma Rodriguez efd3aeccc6 Using the attributes table to find out the method to call in virtual calls
9 years ago
Josh Berdine b155168083 Open Utils implicitly
9 years ago
Josh Berdine 2f47142b94 Warn of unused loop index variables
9 years ago
Sam Blackshear 5833835289 dynamic dispatch for virtual calls in Java
9 years ago
Dino Distefano e0fe2af712 Added a two new attributes: observer/unsubscribed_observer
9 years ago
Cristiano Calcagno 2a926d8294 Remove uses of assert false to get original ml location.
9 years ago
Sam Blackshear 5e9a21573b preventing Bad_footprint when passing struct value by reference
9 years ago
Sam Blackshear d0cd8fca47 removed unused param footprint_part
9 years ago
Peter O'Hearn 028ac24d46 Simple model for locks
9 years ago
Sam Blackshear ef3912cbde Adding on-the-fly translation of types during pre-analysis
9 years ago
Dulma Rodriguez f4bbd44212 Translate dynamic cast for C++
9 years ago
Dulma Rodriguez 10fe998c12 Extending subtyping to C++
9 years ago
Sam Blackshear 14e934205f implementing dynamic dispatch support for Java interfaces
9 years ago
Cristiano Calcagno 7673d94600 Distinguish between class kinds: CPP, Java, Objc
9 years ago
jrm 18668a41ce simplify the API to create procedure descriptions
9 years ago
Cristiano Calcagno 162dc42b5b Use a record for struct types instead of a 7-tuple.
9 years ago
Sam Blackshear d1cf7b7177 removing unused tenv in conditional pruning
9 years ago
jrm cf5040cbee call the on-demand analysis using the procedre name after name resolution
9 years ago
jrm 30e2cf7114 Revive the "call by procedure name" mechanism for Java
9 years ago
jrm b3bf8b1ecc No longer overwrite the list of non-static fields during the translation
9 years ago
jrm 9f5159241f Use Typename.t for the type of the supertypes in the defintion of classes.
9 years ago
jrm 6d91199be7 Generalize the detection of assertion failures to any kind of custom errors defined programatically in the orginal source code
9 years ago
jrm 2e7f5735d3 Extract the naming of types to its own module named Typename
9 years ago
jrm 4143d4eb2d Extract the kind of data structure, Class Struct or Union, into it own module
9 years ago
Sam Blackshear 15480f34d5 distinguishing between failures and timeouts
9 years ago
Sam Blackshear 6b9e1fc9d7 Stop reporting false alarms due to __nullable on Obj-C property getters and setters
9 years ago
Dulma Rodriguez 96a5cf58e5 Nullify variables with objc flags if they appear in conditions
9 years ago
Sam Blackshear a82588ba8a Factoring out the implementations for letderef and set
9 years ago
Sam Blackshear 812ac265a8 more logging cleanup: only print Errdesc.warning_err in developer mode
9 years ago
Dulma Rodriguez 1e5b8aeee7 Adding builtin setters and using them by skip
9 years ago
Dulma Rodriguez c02b3ca034 Add correct ivar name to the getters and save the ivar to the tenv if not available
9 years ago
Sam Blackshear 8e8772f1aa make tainting work properly for skip functions
9 years ago
Dulma Rodriguez 12d21c73dd Adding builtins for getters and calling them by skip
9 years ago
Jules Villard f7ecf30739 refactor pruning code in symExec.ml
9 years ago
Sam Blackshear 353f23695a eliminate need to use attr_check_changed when adding or replacing attributes
9 years ago
Sam Blackshear c7c8d58334 fixing taint analysis so it doesn't prevent postcondition inference
9 years ago
Dino Distefano 03b4c11c06 Improved error message for taint analysis
9 years ago
Sam Blackshear db7dd5aebe fixing angelic in case where unknown function is called indirectly
9 years ago
Cristiano Calcagno 56ccb6b198 Fix assert false in Paths.
9 years ago