282 Commits (61b51b09dba6be61901ee1d21d90ac02265db3c8)

Author SHA1 Message Date
Sam Blackshear a4efc7bba7 [cleanup] Simplify PrettyPrintable.Make functors
9 years ago
Sam Blackshear 4627bb6f48 [absint] simplify `AbstractInterpreter.Make` functor by hiding `Scheduler` parameter
9 years ago
Cristiano Calcagno 5c12d98d37 Deprecate IList module in favour of Core List
9 years ago
Sam Blackshear 38a336694a [quandary] improve taint propagation for unknown calls
9 years ago
Kihong Heo cef2f0e055 Inferbo
9 years ago
Cristiano Calcagno b1421bc27f [BetterEngineering] Remove remaining uses of polymorphic equality
9 years ago
Sam Blackshear df5798336b [cleanup] give AccessPath.raw its own module
9 years ago
Sam Blackshear 2f69191c7e [backend] expose underlying Procdesc.Node from ProcCFG nodes
9 years ago
Sam Blackshear 2add2954da [checkers] factor out FormalMap into its own module
9 years ago
Sam Blackshear d86f777132 [quandary] considering methods of subclasses of Activity, SharedPreferences etc. as sources/sinks too
9 years ago
Sam Blackshear 9c48178e4a [quandary] model some formals of Webview methods as tainted
9 years ago
Sam Blackshear 8d0f6e822c [absint] don't require domains to define their initial state
9 years ago
Sam Blackshear 374ee12792 [traces] adding Sink.Make functor for easier sink creation
9 years ago
Sam Blackshear 6bf38931ce [traces] adding Source.Make functor for easier source creation
9 years ago
Sam Blackshear 06e0f6fbc9 [quandary] support tainted formals
9 years ago
Sam Blackshear 2a567d3abe [quandary] summaries are access trees too
9 years ago
Josh Berdine 7834c95bc8 Silence deprecation warnings
9 years ago
Josh Berdine e438314776 Divide Utils into Utils, Pp, and IStd
9 years ago
Josh Berdine de2e6c9d88 Core.Std.Option
9 years ago
Josh Berdine e415b73786 Core.Std.String
9 years ago
Josh Berdine a2930b7007 Core.Std.Int
9 years ago
Josh Berdine 198bc00df7 Remove Utils compare and equal functions
9 years ago
Josh Berdine bbd5ef385d ppx_compare ProcCfg
9 years ago
Josh Berdine 356d081e1f ppx_compare AccessPath
9 years ago
Sam Blackshear ad5ff00dcd [quandary] making it easier to specify behavior for unknown functions
9 years ago
Sam Blackshear 5c2666a07c [quandary] filter the footprint sources in Trace.should_report
9 years ago
Jules Villard 7705ffbc31 [checkers] rename to_callee -> with_callsite
9 years ago
Cristiano Calcagno c5159bae1c [IR] Move Procdesc module to a separate file.
9 years ago
Sam Blackshear fde7a6ecf3 [quandary] support for full interprocedural traces
9 years ago
Cristiano Calcagno e933ee958a [IR] Rearrange the cfg module to make nodes, procd descs, and cfgs independent types.
9 years ago
Josh Berdine 32a60e05f4 Unbreak master
9 years ago
Sam Blackshear 768a60caca [quandary] support for full interprocedural traces
9 years ago
Sam Blackshear 9968245a43 [quandary] move source and sink kinds into their own modules
9 years ago
Sam Blackshear 874e7f000d [quandary] functions that transitively return sources are sources, not passthroughs
9 years ago
Cristiano Calcagno 73c5dfdfa4 [IR] Remove use of Cfg.Node.get_proc_desc
9 years ago
Sam Blackshear d76a7ef43a [quandary] functions that transitively call sinks are sinks, not passthroughs
9 years ago
Andrzej Kotulski 46592ffdd9 [backend] Split construction of builtin pnames and builtin registration
9 years ago
Cristiano Calcagno 3fb8801b6c [IR] Change cfg representation so the node number is per-procedure and not per-cfg
9 years ago
Sam Blackshear 2c0bf042b4 [checkers] extract access paths from non-lhs expressions
9 years ago
Cristiano Calcagno ecda199e9d [IR] Clean up unused parts of Cfg
9 years ago
Sam Blackshear 319463b3bc [quandary] propagating taint from unknown procedures and constructors
9 years ago
Sam Blackshear 355ab92130 [backend] move expression pretty-printing into exp module
9 years ago
Sam Blackshear 6aee686cb2 [quandary] passing actuals to the sink-determining code
9 years ago
Sam Blackshear 727af5d660 [checkers] clean up abstract interpreter
9 years ago
Sam Blackshear 1a958d1d8b [quandary] simplifying Source module interface now that calls have single retval
9 years ago
Sam Blackshear 35bb540bf4 [quandary] adding TaintSpec module for clearer naming
9 years ago
Sam Blackshear 5e2e7b88aa [quandary] allow trace-specific rules for handling unknown code
9 years ago
Josh Berdine c094a38d56 [IR] Simplify to single return id, with type
9 years ago
Sam Blackshear 3051d90307 [quandary] kill unused Source.to_return proc
9 years ago
Sam Blackshear de146f4f2d [quandary] switch to using base -> formal num map in extras
9 years ago
Sam Blackshear 31e6849ec0 [quandary] using summaries part 2: the relational cases
9 years ago
Sam Blackshear 9f1c4e4bca [quandary] adding append operation
9 years ago
Sam Blackshear d6d7293633 [quandary] moving logging of errors into analysis
9 years ago
Sam Blackshear 31435fa936 [quandary] summaries for interprocedural analysis
9 years ago
Sam Blackshear 27cfb141da richer sink specifications
9 years ago
Sam Blackshear 3368548e3e replace stackop instruction with skip instruction
9 years ago
Sam Blackshear 8ab9a6c714 remove some commented logging code
9 years ago
Lázaro Clapp Jiménez Labora f2e958ef3a Add support for multiple stacktraces in '-a crashcontext'
9 years ago
Sam Blackshear a31a735e35 separate pretty-printer for pp_kind
9 years ago
Sam Blackshear 36b0a957bd setup for creating very simple absint checkers
9 years ago
Cristiano Calcagno 91d9cd83b5 Cleanup instruction names: use Load/Store instead of Letderef/Set.
9 years ago
Sam Blackshear 262a121cf6 handle casts
9 years ago
Sam Blackshear 514107ec88 track sinks
9 years ago
Sam Blackshear f0028669ee propagate tainted sources
9 years ago
Sam Blackshear 3b12208e1b intraprocedural taint analysis that records sources
9 years ago
Sam Blackshear 90c8f55c32 adding missing functionality to analyzerTester
9 years ago
Sam Blackshear 462bf68f46 killing is_bottom
9 years ago
Sam Blackshear f99b30c4cd abstracting passthroughs more aggressively
9 years ago
Lázaro Clapp Jiménez Labora 175efddc2b Make stacktrace and stacktree line number an int option.
9 years ago
Lázaro Clapp Jiménez Labora 616e8fddd4 Make stacktrace parsing work when line number info is not available.
9 years ago
Sam Blackshear 034d2e3c81 adding accessTree.fold
9 years ago
Josh Berdine 25a52c7bbc Refactor operations on Exp.t in Sil to Exp
9 years ago
Josh Berdine 701eb20f83 Refactor Sil.exp to Exp.t
9 years ago
Lázaro Clapp Jiménez Labora d23c99a4ea Add blame_range to crashcontext analysis.
9 years ago
Sam Blackshear 33b417c280 generalizing `add_trace` to `add_node`
9 years ago
Sam Blackshear 706acdfd9e generalizing get_trace to get_node
9 years ago
Sam Blackshear e9aecd0afe widen for access trees
9 years ago
Sam Blackshear 6a1a0d68da create access paths from expressions
9 years ago
Sam Blackshear e95ebca786 factoring out some utility methods for testing access-based stuff
9 years ago
Lázaro Clapp Jiménez Labora 9f7cb87bb0 Add stacktrace extras to BoundedCallTree checker.
9 years ago
Sam Blackshear 0ca19da3cf allowing custom procname in analyzerTester
9 years ago
Sam Blackshear a33e047377 allow access path base to be an ident as well
9 years ago
Lázaro Clapp Jiménez Labora d4a9a6cde1 Add initial stack trace parsing code for semantic blame
9 years ago
Sam Blackshear 16b31acfc9 add_trace function for access tree + tests
9 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
9 years ago
Sam Blackshear 09e45710d3 join for access trees and tests
9 years ago
Josh Berdine ccd32690d7 Refactor Sil.call_flags into separate CallFlags 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 32d09545e2 Closure values are not constants
9 years ago
Sam Blackshear b2c422827a adding <=, tests to access tree domain
9 years ago
Sam Blackshear 05505b55fd beginnings of access tree domain, tests
9 years ago
Sam Blackshear 9df3b8f653 eliminating dead stores created by copy-propagation
9 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
10 years ago
Sam Blackshear 85747084b5 adding dependency on ounit
10 years ago
Sam Blackshear 62965e8051 adding runner for OCaml unit tests
10 years ago