370 Commits (d36aae1bcfceee08f52b7e51be2a47cc06e29bf3)

Author SHA1 Message Date
Sam Blackshear 38d3946c71 [quandary] support for basic return value sanitizers
8 years ago
Martino Luca 34a0efd626 Add optional field in serialized output
8 years ago
Sam Blackshear 32ead76a3b [absint] make Set and Map functors take an ordered type
8 years ago
Jules Villard 93ec47a5f4 [IR] add stride to array type
8 years ago
Jules Villard 709376945f [config] migrate help to use man pages
8 years ago
Sam Blackshear 6af6ef35ec [quandary] support sources that taint a pointer arg or arg passed by ref rather than the return value
8 years ago
Sam Blackshear 52ed886886 [quandary] log error to summary instead of pdesc
8 years ago
Jules Villard 29f7967f26 [build] remove unused values
8 years ago
Sam Blackshear 19da59cf19 [hil] functor for easily creating HIL analyses
8 years ago
Sam Blackshear 80030c8de7 [quandary] delegate handling of assignment to HIL
8 years ago
Jeremy Dubreil b3af2ad4b6 [infer][ondemand] The source parameter from the analysis callback was never used
8 years ago
Sam Blackshear d248780645 [quandary] delegate cast handling to HIL
8 years ago
Andrzej Kotulski 029499cd9d [IR] add type qualifiers to Typ.t
8 years ago
Jules Villard f232e3bd8d [build] fatal on warnings 21, 52, 57
8 years ago
Sam Blackshear 92011790c2 [quandary] optimize handling of unknown code by adding notion of 'taintable types'
8 years ago
Dulma Churchill f4bc0db2b4 [clang] Make capture with simple clang command be a method call
8 years ago
Jeremy Dubreil f5adab59ec [infer][checkers] Prevent the race conditions between the summaries passed as parameter to the checkers and the summaries from the specs table
8 years ago
Andrzej Kotulski 71702a13dc [IR] More detailed type for Fieldname.t
8 years ago
Andrzej Kotulski e6ebad394e [IR] Make qualified names type safe
8 years ago
Andrzej Kotulski 7c64d217f2 [IR] Refactor Ident.fieldname _*into Fieldname module
8 years ago
Sam Blackshear c5d7762f60 [access trees] expose join of nodes and fold over nodes
8 years ago
Sam Blackshear 69fe80346c [quandary][perf] Always use the location of the pdesc in footprint sources
8 years ago
Jeremy Dubreil 30ae60461e [infer][backend] Fail when no callback is registered to run the analysis on-demand
8 years ago
Dulma Churchill fca8322c1f [linters] Save the linters definition file in the report.json
8 years ago
Martino Luca 5448a95ce7 [Infer][Localise] Group all issue types in one place, and provide their human-readable representation
8 years ago
Andrzej Kotulski e363958d34 [codemod] Move `Procname` into `Typ.Procname`
8 years ago
Andrzej Kotulski ef79b20e17 [clang] Inline namespaces disappear, simplify infer's code
8 years ago
Martino Luca f8a65e698c Add differential and filtering functionalities to Infer, to compare two analyses
8 years ago
Dulma Churchill 01c1d9f112 [linters] Remove new lines from linters messages
8 years ago
Cristiano Calcagno 9a06a859e2 Deprecate IList part 3.
8 years ago
Cristiano Calcagno b1b5460529 Deprecate further IList functions
8 years ago
Cristiano Calcagno 731dead406 More IList deprecation: fold functions
8 years ago
Jules Villard f1698f3816 [clang] reimplement fuzzy matching of list of qualifiers
8 years ago
Jules Villard 7e1f1f9101 [test] make tests pass in clang-only or java-only mode
8 years ago
Sam Blackshear ae0df5dc57 [access paths] kill type of field access and replace with utility functions for recovering type
8 years ago
Sam Blackshear 919b35f50a [quandary] better taint propagation for Intent's
8 years ago
Cristiano Calcagno 60916922c6 Deprecate more IList functions and use Core List instead
8 years ago
Dulma Churchill 9ac65a7b1d [linters] Take current os version into account in the unavailable api check
8 years ago
Sam Blackshear a4efc7bba7 [cleanup] Simplify PrettyPrintable.Make functors
8 years ago
Sam Blackshear 4627bb6f48 [absint] simplify `AbstractInterpreter.Make` functor by hiding `Scheduler` parameter
8 years ago
Cristiano Calcagno 5c12d98d37 Deprecate IList module in favour of Core List
8 years ago
Sam Blackshear 38a336694a [quandary] improve taint propagation for unknown calls
8 years ago
Kihong Heo cef2f0e055 Inferbo
8 years ago
Cristiano Calcagno b1421bc27f [BetterEngineering] Remove remaining uses of polymorphic equality
8 years ago
Sam Blackshear df5798336b [cleanup] give AccessPath.raw its own module
8 years ago
Sam Blackshear 2f69191c7e [backend] expose underlying Procdesc.Node from ProcCFG nodes
8 years ago
Sam Blackshear 2add2954da [checkers] factor out FormalMap into its own module
8 years ago
Sam Blackshear d86f777132 [quandary] considering methods of subclasses of Activity, SharedPreferences etc. as sources/sinks too
8 years ago
Sam Blackshear 9c48178e4a [quandary] model some formals of Webview methods as tainted
8 years ago
Sam Blackshear 8d0f6e822c [absint] don't require domains to define their initial state
8 years ago
Sam Blackshear 374ee12792 [traces] adding Sink.Make functor for easier sink creation
8 years ago
Sam Blackshear 6bf38931ce [traces] adding Source.Make functor for easier source creation
8 years ago
Sam Blackshear 06e0f6fbc9 [quandary] support tainted formals
8 years ago
Sam Blackshear 2a567d3abe [quandary] summaries are access trees too
8 years ago
Josh Berdine 7834c95bc8 Silence deprecation warnings
8 years ago
Josh Berdine e438314776 Divide Utils into Utils, Pp, and IStd
8 years ago
Josh Berdine de2e6c9d88 Core.Std.Option
8 years ago
Josh Berdine e415b73786 Core.Std.String
8 years ago
Josh Berdine a2930b7007 Core.Std.Int
8 years ago
Josh Berdine 198bc00df7 Remove Utils compare and equal functions
8 years ago
Josh Berdine bbd5ef385d ppx_compare ProcCfg
8 years ago
Josh Berdine 356d081e1f ppx_compare AccessPath
8 years ago
Sam Blackshear ad5ff00dcd [quandary] making it easier to specify behavior for unknown functions
8 years ago
Sam Blackshear 5c2666a07c [quandary] filter the footprint sources in Trace.should_report
8 years ago
Jules Villard 7705ffbc31 [checkers] rename to_callee -> with_callsite
8 years ago
Cristiano Calcagno c5159bae1c [IR] Move Procdesc module to a separate file.
8 years ago
Sam Blackshear fde7a6ecf3 [quandary] support for full interprocedural traces
8 years ago
Cristiano Calcagno e933ee958a [IR] Rearrange the cfg module to make nodes, procd descs, and cfgs independent types.
8 years ago
Josh Berdine 32a60e05f4 Unbreak master
8 years ago
Sam Blackshear 768a60caca [quandary] support for full interprocedural traces
8 years ago
Sam Blackshear 9968245a43 [quandary] move source and sink kinds into their own modules
8 years ago
Sam Blackshear 874e7f000d [quandary] functions that transitively return sources are sources, not passthroughs
8 years ago
Cristiano Calcagno 73c5dfdfa4 [IR] Remove use of Cfg.Node.get_proc_desc
8 years ago
Sam Blackshear d76a7ef43a [quandary] functions that transitively call sinks are sinks, not passthroughs
8 years ago
Andrzej Kotulski 46592ffdd9 [backend] Split construction of builtin pnames and builtin registration
8 years ago
Cristiano Calcagno 3fb8801b6c [IR] Change cfg representation so the node number is per-procedure and not per-cfg
8 years ago
Sam Blackshear 2c0bf042b4 [checkers] extract access paths from non-lhs expressions
8 years ago
Cristiano Calcagno ecda199e9d [IR] Clean up unused parts of Cfg
8 years ago
Sam Blackshear 319463b3bc [quandary] propagating taint from unknown procedures and constructors
8 years ago
Sam Blackshear 355ab92130 [backend] move expression pretty-printing into exp module
8 years ago
Sam Blackshear 6aee686cb2 [quandary] passing actuals to the sink-determining code
8 years ago
Sam Blackshear 727af5d660 [checkers] clean up abstract interpreter
8 years ago
Sam Blackshear 1a958d1d8b [quandary] simplifying Source module interface now that calls have single retval
8 years ago
Sam Blackshear 35bb540bf4 [quandary] adding TaintSpec module for clearer naming
8 years ago
Sam Blackshear 5e2e7b88aa [quandary] allow trace-specific rules for handling unknown code
8 years ago
Josh Berdine c094a38d56 [IR] Simplify to single return id, with type
8 years ago
Sam Blackshear 3051d90307 [quandary] kill unused Source.to_return proc
8 years ago
Sam Blackshear de146f4f2d [quandary] switch to using base -> formal num map in extras
8 years ago
Sam Blackshear 31e6849ec0 [quandary] using summaries part 2: the relational cases
8 years ago
Sam Blackshear 9f1c4e4bca [quandary] adding append operation
8 years ago
Sam Blackshear d6d7293633 [quandary] moving logging of errors into analysis
8 years ago
Sam Blackshear 31435fa936 [quandary] summaries for interprocedural analysis
8 years ago
Sam Blackshear 27cfb141da richer sink specifications
8 years ago
Sam Blackshear 3368548e3e replace stackop instruction with skip instruction
8 years ago
Sam Blackshear 8ab9a6c714 remove some commented logging code
8 years ago
Lázaro Clapp Jiménez Labora f2e958ef3a Add support for multiple stacktraces in '-a crashcontext'
8 years ago
Sam Blackshear a31a735e35 separate pretty-printer for pp_kind
8 years ago
Sam Blackshear 36b0a957bd setup for creating very simple absint checkers
8 years ago
Cristiano Calcagno 91d9cd83b5 Cleanup instruction names: use Load/Store instead of Letderef/Set.
8 years ago
Sam Blackshear 262a121cf6 handle casts
8 years ago
Sam Blackshear 514107ec88 track sinks
8 years ago
Sam Blackshear f0028669ee propagate tainted sources
8 years ago
Sam Blackshear 3b12208e1b intraprocedural taint analysis that records sources
8 years ago
Sam Blackshear 90c8f55c32 adding missing functionality to analyzerTester
8 years ago
Sam Blackshear 462bf68f46 killing is_bottom
8 years ago
Sam Blackshear f99b30c4cd abstracting passthroughs more aggressively
8 years ago
Lázaro Clapp Jiménez Labora 175efddc2b Make stacktrace and stacktree line number an int option.
8 years ago
Lázaro Clapp Jiménez Labora 616e8fddd4 Make stacktrace parsing work when line number info is not available.
8 years ago
Sam Blackshear 034d2e3c81 adding accessTree.fold
8 years ago
Josh Berdine 25a52c7bbc Refactor operations on Exp.t in Sil to Exp
8 years ago
Josh Berdine 701eb20f83 Refactor Sil.exp to Exp.t
8 years ago
Lázaro Clapp Jiménez Labora d23c99a4ea Add blame_range to crashcontext analysis.
8 years ago
Sam Blackshear 33b417c280 generalizing `add_trace` to `add_node`
8 years ago
Sam Blackshear 706acdfd9e generalizing get_trace to get_node
8 years ago
Sam Blackshear e9aecd0afe widen for access trees
8 years ago
Sam Blackshear 6a1a0d68da create access paths from expressions
8 years ago
Sam Blackshear e95ebca786 factoring out some utility methods for testing access-based stuff
8 years ago
Lázaro Clapp Jiménez Labora 9f7cb87bb0 Add stacktrace extras to BoundedCallTree checker.
8 years ago
Sam Blackshear 0ca19da3cf allowing custom procname in analyzerTester
8 years ago
Sam Blackshear a33e047377 allow access path base to be an ident as well
8 years ago
Lázaro Clapp Jiménez Labora d4a9a6cde1 Add initial stack trace parsing code for semantic blame
8 years ago
Sam Blackshear 16b31acfc9 add_trace function for access tree + tests
8 years ago
Lázaro Clapp Jiménez Labora b9a5a3b5ad Add initial version (k=1, undirected) of the bounder calltree analysis checker for the Semantic Blame project
8 years ago
Sam Blackshear 09e45710d3 join for access trees and tests
8 years ago
Josh Berdine ccd32690d7 Refactor Sil.call_flags into separate CallFlags module
8 years ago
Josh Berdine 2154c2c483 Refactor Sil.unop into separate Unop module
8 years ago
Josh Berdine 9487cab145 Refactor Sil.const into separate Const module
8 years ago
Josh Berdine 32d09545e2 Closure values are not constants
8 years ago
Sam Blackshear b2c422827a adding <=, tests to access tree domain
8 years ago
Sam Blackshear 05505b55fd beginnings of access tree domain, tests
8 years ago
Sam Blackshear 9df3b8f653 eliminating dead stores created by copy-propagation
8 years ago
Sam Blackshear 314d022e38 add abstraction of access path, use in access path set domain
9 years ago
Sam Blackshear b9fefe9d9b better unit tests for procCfg
9 years ago
Sam Blackshear cf5871e76f fixing broken backward/per-instr cfg by taking a different approach
9 years ago
Sam Blackshear 7544e500bf adding finite access paths, tests, and basic utilities
9 years ago
Sam Blackshear c1b5a4b03e don't treat `x = &y` as a copy
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
Sam Blackshear 49136a187b fixing bug in exceptional preds/succs in per-instr procCfg
9 years ago
Sam Blackshear 25578de26d redesigning abstract interpreter to allow easy composition of analyses
9 years ago
Sam Blackshear c92bbf362b removing need to pass around lists of temporary id's in the frontend
9 years ago
Sam Blackshear ef1b76d27b new procCfg type with each node containing at most one instruction
9 years ago
Sam Blackshear 0becc32a88 factoring Node module out of CFG
9 years ago
Sam Blackshear f60b17d8b9 correctly handling Sil.Letderef(Var, Var) Sil.Set(Var, _) in copy propagation
9 years ago
Sam Blackshear b20ef20644 Allowing custom procCfg node types
9 years ago
Sam Blackshear ebcfae388a handling Set(Var, _,) as read of var in liveness analysis
9 years ago
Sam Blackshear 49d32859cb adding optional postprocessing step to transfer functions
9 years ago
Sam Blackshear 90a5a5912f allowing extra data to be packaged along with procCfg
9 years ago
Sam Blackshear f3fe199a25 Forcing node ids of procCfg's to be Cfg.Node.id
9 years ago
Sam Blackshear 596d8338ee dealing with exceptional control-flow in abstract interpreter
9 years ago
Sam Blackshear 6aca1cdfef exceptional procCfg
9 years ago
Sam Blackshear 988ceafbf0 adding try/catch/finally instruction to structured SIL
9 years ago
Cristiano Calcagno 054ad223a8 Fix control-flow graph shape when conditional is last instruction.
9 years ago
Josh Berdine e1020c8ebe Remove -open(Utils) compile flag hack
9 years ago
Sam Blackshear e54db73bab pass tenv to the transfer functions
9 years ago
Sam Blackshear c499645f6f better names in AbstractDomain and TransferFunctions modules
9 years ago
Sam Blackshear 967dcec7f1 liveness analysis and unit tests
9 years ago
Sam Blackshear c8b87ed0c8 passing caller pdesc into the transfer functions
9 years ago
Cristiano Calcagno 509a666ee0 Refactor Sil.pvar into a separate module.
9 years ago
Sam Blackshear c03f39f20c Fixing some issues with Obj-C blocks
9 years ago
Sam Blackshear a71caccc80 address-taken analysis and tests
9 years ago
Cristiano Calcagno c198d76631 Clean up the Procname module, and remove remaining assert false
9 years ago
Sam Blackshear dec843f5f5 copy-propagation analysis + tests
9 years ago
Sam Blackshear 8913e38dbd getting rid of bottom
9 years ago
Sam Blackshear 730a2afaaf more consistency with abbreviated functions names in abstract domain signature
9 years ago
Sam Blackshear ddfd35107c unit tests for abstract interpreter
9 years ago
Sam Blackshear 2f44f3faa8 adding generic abstract interpreter
9 years ago
Sam Blackshear b62bdc46b6 adding scheduler abstraction and reverse postorder scheduler
9 years ago
Sam Blackshear 85747084b5 adding dependency on ounit
9 years ago
Sam Blackshear 62965e8051 adding runner for OCaml unit tests
9 years ago