1085 Commits (72a7a0eaab3b4ef8e1f8b29d79135eb19a8ec23a)

Author SHA1 Message Date
Jeremy Dubreil 56709b4ccb [infer] the bug hash should also consider the anonymous classes in the qualifier
6 years ago
Jeremy Dubreil fd29aff3a7 [infer] remove the special case to always create summaries for the Java methods
6 years ago
Nikos Gorogiannis 1644e99499 [starvation] add issue type STRICT_MODE and make distinct reports on it
6 years ago
Ezgi Çiçek b54307f5d0 [Hoisting] Add test for FP due to no purity check
6 years ago
Ezgi Çiçek aca0b8e130 [Hoisting] Fix hoisting of void functions
6 years ago
Jeremy Dubreil 2f7e4563c6 [eradicate] also lookup the procedure attributes in the super class
6 years ago
Mehdi Bouaziz e11ec33289 arc: add Java formatter
6 years ago
Jeremy Dubreil ae1861ca42 [eradicate] match the number of parameters when iterating over the list of overridden methods
6 years ago
Mehdi Bouaziz 7c89d92851 [RFC] Format all java files
6 years ago
Jeremy Dubreil 1989ef7e28 [eradicate] add example false positive caused by not finding the attributes
6 years ago
Ezgi Çiçek 43b3f80de5 Add simple purity analysis
6 years ago
Jules Villard bb037c39ee [kill -a][4/4] kill `Config.analyzer`, deprecate `--analyzer`
6 years ago
Jules Villard a29e769b61 [kill -a][1/4] stop using `-a foo` in the infer repo
6 years ago
Jeremy Dubreil 878add3fad [eradicate] no longer report Field Not Nullable warnings on the Fragment onDestroy method
6 years ago
Nikos Gorogiannis 631959ced0 [starvation] refactor method matching ; kill dev-android-strict-mode option
6 years ago
Nikos Gorogiannis 0c7a8556dc [concurrency] treat @MainThread annotation
6 years ago
Nikos Gorogiannis 66392db8d5 [starvation] allow specifying method patterns for skipping analysis via cmdline and inferconfig
6 years ago
Jeremy Dubreil 48f03f06f4 [eradicate] skip the analysis of the method in external methods
6 years ago
Jeremy Dubreil ff851040fc [eradicate] read the procedure attributes directly
6 years ago
Jeremy Dubreil 3442ce1999 [eradicate] no longer report Inconsistent Subclass Return Annotation when overriding external methods
6 years ago
Nikos Gorogiannis 52eef069b2 [concurrency] fix UI thread models
6 years ago
Jeremy Dubreil c38163a83a [eradicate] the Java map put method does not accept nullable parameters
6 years ago
Martino Luca aea1b4095e [Perf][CI] Disable threshold based cost reports
6 years ago
Nikos Gorogiannis 888a169dce [starvation] make a trace out of our explanation as to why a method runs on the UI thread
6 years ago
Nikos Gorogiannis a6e5ab7fdb [starvation][strict mode] disable strict mode violation reporting and analysis by default
6 years ago
Nikos Gorogiannis 96e698a458 [starvation] strict mode meta-analyzer for Android
6 years ago
Ezgi Çiçek 15bdcca119 [Loop-hoisting] Add a new model for Javax's Provider.get() and make it invariant only
6 years ago
Mehdi Bouaziz 46cd49df8d PrintfArgs is not an Eradicate checker
6 years ago
Mehdi Bouaziz 39a146a56a Reporting cleanup 14: log error using state
6 years ago
Ezgi Çiçek b2e7a785ba [Loop-hoisting] Add more models for invariant analysis
6 years ago
Ezgi Çiçek 49e582fa49 [Loop-hoisting] Add a new checker for hoisting invariant function calls
6 years ago
Nikos Gorogiannis 14556f52b4 [starvation] whitelist @WorkerThread methods
6 years ago
Nikos Gorogiannis af14da6a13 [starvation] stop considering View.get... as blocking.
6 years ago
Ezgi Çiçek 527fb90bbe [Cost] Add a Java model for functions to be considered invariant
6 years ago
Ezgi Çiçek cc18f9883d [Cost] Fix invariant variable analysis to be based on all reaching defns
6 years ago
Julian Sutherland dd4ee55d5a fixed error in java expected test results
6 years ago
Julian Sutherland b7c90c3fe0 Fixed incorrect reporting of tainted index in function call by quandary
6 years ago
Jeremy Dubreil d000a27bd4 [infer] use a fully qualified name for the procedure field in the final report
6 years ago
Ezgi Çiçek bedf32bed5 [Cost, InferBo] generalize ArrayLists to Collections and Iterators
6 years ago
Ezgi Çiçek 9022228804 add support for hasNext() and iterator() for Java
6 years ago
Ezgi Çiçek 832e0130cd [Inferbo] Fix the way pointers to arrays are handled in Java
6 years ago
Mehdi Bouaziz 12c0e245c6 [Inferbo] Simplify interval pretty-print
6 years ago
Martino Luca 632cb0e513 [Perf] Emit ZERO_EXECUTION_TIME_CALL issue-type, when zero-costing functions are met
6 years ago
Nikos Gorogiannis 3870ebb747 [starvation] catch calls to Thread.sleep
6 years ago
Ezgi Çiçek 396caca5d6 Fix array size for Java in `get_malloc_info`
6 years ago
Nikos Gorogiannis 4cc8563212 [starvation] catch Object.wait calls on main thread
6 years ago
Jeremy Dubreil 3539388ea6 [infer][tests] fix the expected test output
6 years ago
Nikos Gorogiannis 14aa1edbf5 [starvation] Avoid FPs in guava Futures
6 years ago
Martino Luca c50b250576 [Perf] Compute the degree of polynomials
6 years ago
Ezgi Çiçek 2d889791e2 Fix Java's handling of pointer parameters in Inferbo
6 years ago
Ezgi Çiçek 9ed18e958a Add support for ArrayList.remove
6 years ago
Jules Villard 2761a62e94 [java] record HashMap get from `KeySet()` FP from #128
6 years ago
Jules Villard 398e97183f [java] record Closeable example from #49
6 years ago
Ezgi Çiçek f540aa47a3 Add support for Java's ArrayList.set and ArrayList.get
6 years ago
Ezgi Çiçek 0c6eacc902 Add support for Java's ArrayLists.add*
6 years ago
Martino Luca cccef6261d Revert "[Perf] Add cost information to the hashing function"
6 years ago
Martino Luca ac64be761f [Perf] Add cost information to the hashing function
6 years ago
Nikos Gorogiannis 6b156f71fe [racerd] special-case for Litho's getThis
6 years ago
Ezgi Çiçek 34c2899a69 Fix printing of fields in Java
6 years ago
Nikos Gorogiannis c5ad94d825 [starvation] Adjust blocking call severities to better reflect practice
6 years ago
Ezgi Çiçek 5cff9c91f9 Add Java support to ProcnameDispatcher
6 years ago
Mehdi Bouaziz e5de1b6663 Cost: simplify range of parameters
7 years ago
Mehdi Bouaziz bea71d9168 Inferbo/perf: path rather than symbols
7 years ago
Ezgi Çiçek 4624ff48d1 Fix control variable imprecision in do while loops
7 years ago
Mehdi Bouaziz 0639ef82b7 Cost: also take into account arguments in range
7 years ago
Nikos Gorogiannis 848ef3da21 [RacerD] Fix stability implementation
7 years ago
Nikos Gorogiannis f28aa37cb6 [racerd] Do not record paths starting at variables not appearing in source
7 years ago
Jeremy Dubreil 055a8267e8 [eradicate] promote reports as errors for generated GraphQL source of nulls
7 years ago
Nikos Gorogiannis e5d8f501f4 [starvation] fix conversions of int literals which need 64 bit ints
7 years ago
Jeremy Dubreil 90c08e4596 [eradicate] report as warnings by default
7 years ago
Ezgi Çiçek cf1c2acb54 [Cost] Add invariant analysis
7 years ago
Ezgi Çiçek f80af7be93 Fix control var analysis for loops with multiple back-edges per loop head
7 years ago
Mehdi Bouaziz bd725602ee Inferbo: size of arrayblk is unsigned
7 years ago
Nikos Gorogiannis 73507de47b [starvation] report only on public methods
7 years ago
Nikos Gorogiannis 101574e9d0 Revert again.
7 years ago
Nikos Gorogiannis d13b845434 [starvation] improve deadlock reports
7 years ago
Nikos Gorogiannis db17b13f6a Bad rebase of stacked diff -- reverting.
7 years ago
Nikos Gorogiannis 787cb2c612 [starvation] improve deadlock reports
7 years ago
Mehdi Bouaziz 5b6430e739 Cost solver
7 years ago
Nikos Gorogiannis 113ddbb3ac [starvation] dedup deadlocks
7 years ago
Ezgi Çiçek bbd6820ca1 Get rid of data dep analysis and localize it to single step
7 years ago
Nikos Gorogiannis 4820e3db1e [starvation] add NonBlocking annotation
7 years ago
Ezgi Çiçek cb8e734bbb Get all the loop instructions
7 years ago
Nikos Gorogiannis cacc975394 [starvation] implement SuppressLint
7 years ago
Nikos Gorogiannis 2a83d64481 [starvation] silence reports on IO
7 years ago
Nikos Gorogiannis 971cd84455 [starvation] report using split events
7 years ago
Jules Villard 30c470eb48 [tests] record error bucket in expected output
7 years ago
Jules Villard 8b882ac1df Change license to MIT
7 years ago
Nikos Gorogiannis c70b978aa8 [starvation] deduplication
7 years ago
Jeremy Dubreil c35278a8f8 [infer] the fragment retains view checker should not warn on field annotated with @AutoCleanup
7 years ago
Martino Luca c7c68346c3 [Test determinator] Add tests
7 years ago
Nikos Gorogiannis e36ca3d07f [starvation] explain why we think a method runs on the ui thread
7 years ago
Mehdi Bouaziz a0e3314b7b Eradicate: add a test for condition-redundant check
7 years ago
Nikos Gorogiannis 5e8b118151 [starvation] fix reported location
7 years ago
Dino Distefano 9b18d87427 Moved TestDeterminator module
7 years ago
Sam Blackshear 370f5c80e6 [quandary] only treat overrides of service methods as endpoints
7 years ago
Mehdi Bouaziz aaf346d115 [cost] Polynomial domain
7 years ago
Nikos Gorogiannis 7e5381b7a9 [starvation] model legacy synchronized containers
7 years ago
Nikos Gorogiannis e3f0754335 [starvation] add static timeout recognition and 5 second android limit
7 years ago
Nikos Gorogiannis f22bb53aa8 [starvation] Treat Service (but not IntentService) subclasses as on UI thread
7 years ago
Nikos Gorogiannis 78ad6e6d00 [concurrency] extend notion of ui thread
7 years ago
Nikos Gorogiannis b02a6e9e48 [starvation] catch AsyncTask.get calls on main thread
7 years ago
Mehdi Bouaziz 62fa99ad3f Simplified example showing problem with arrays
7 years ago
Nikos Gorogiannis ecfa29b083 [starvation] dedup deadlock warnings
7 years ago
Jeremy Dubreil cbfdacd21c [infer][eradicate] add the name of the class for the method expecting non-null parameters
7 years ago
Nikos Gorogiannis a7bd92de2f [starvation] enable starvation checker
7 years ago
Nikos Gorogiannis c104ea11dc [racerd] switch to external issue logs
7 years ago
Nikos Gorogiannis 58f37cb9d8 [starvation] do not report deadlocks when both traces on UI thread
7 years ago
Nikos Gorogiannis 538bcd9135 [starvation] store issues to issue-logs like linters do
7 years ago
Nikos Gorogiannis 14ec16da12 [starvation] catch calls to AcccountManager.setUserData
7 years ago
Nikos Gorogiannis bf501e5a7d [starvation] treat Future.get as potentially blocking
7 years ago
Dino Distefano f2fa8cf0e0 Adding more examples where we get Top as cost
7 years ago
Sam Blackshear 78521419a9 [racerd] make deep ownership work with OwnedIf
7 years ago
Jules Villard 902de9d6e3 [sil] make return value and type mandatory
7 years ago
Sam Blackshear bb2ff197b3 [absint] fix handling of exceptions
7 years ago
Dino Distefano dbc8f29835 Added array test where we get TOP
7 years ago
Nikos Gorogiannis dab8e2f17d [starvation] Catch indirect blocks to the UI thread
7 years ago
Nikos Gorogiannis e0a61c0a4a [starvation] Move to a cluster checker phase for reporting
7 years ago
Sam Blackshear 30d7239aff [quandary] SQL sinks for java
7 years ago
Nikos Gorogiannis 63aafd3381 [starvation] catch calls to View.getVisibleDisplayFrame
7 years ago
Nikos Gorogiannis e5265ea85b [starvation] surface caller of blocking calls in reports
7 years ago
Nikos Gorogiannis a4a1a9c55e [starvation] Catch java IO blocking calls on UI thread
7 years ago
Nikos Gorogiannis 7a9009e467 [starvation] Catch CountDownLatch.await calls on main thread
7 years ago
Nikos Gorogiannis b6c8766b11 [starvation] report binder calls on ui thread
7 years ago
Nikos Gorogiannis 196c0e5544 [starvation] harmonize java formatting in tests
7 years ago
Sam Blackshear 670ae4a673 [quandary] `WebResourceRequest.getUrl` as source
7 years ago
Sam Blackshear 8084c8fec7 [racerd] treat `@InjectProp` formals as owned
7 years ago
Sam Blackshear ce8f958522 [racerd] don't report INTERFACE_NOT_THREAD_SAFE if the receiver of the interface call is marked `ThreadConfined`
7 years ago
Nikos Gorogiannis 0130c09dfc [starvation] add infrastructure for blocking events other than lock acquisition
7 years ago
Nikos Gorogiannis 269a1a9b93 [starvation] treat locks in (and accessed from) inner classes properly
7 years ago
Jeremy Dubreil 2f1d486aab [eradicate] model com.google.common.base.Strings.isNullOrEmpty(...)
7 years ago
Jeremy Dubreil 5dea7c55e2 [infer][java] report nullable inconsistencies on library calls
7 years ago
Nikos Gorogiannis 462c2e2b2e [starvation] fix handling of static synchronized methods and static locks
7 years ago
Nikos Gorogiannis b11dd03fb9 [starvation] ignore local/temp variables as locks
7 years ago
Nikos Gorogiannis b335fb9c50 [deadlock] rebrand to starvation
7 years ago
Jeremy Dubreil 2e14f9c9c3 [infer] model android.app.AlarmManager.cancel(PendingIntent) as not accepting a null parameter
7 years ago
Jeremy Dubreil 8cfbdef7e0 [infer][biabduction] no longer track the resources saved into a container
7 years ago
Sam Blackshear aabf8aec55 [quandary] use `_risk` warning types for endpoint sources in Java
7 years ago
Jeremy Dubreil 245e49e2da [infer] Eradicate should understand any form of checkNotNull
7 years ago
Jeremy Dubreil e801617488 [infer][java] Eradicate should not report a Return Not Nullable when a method returns the integer 0
7 years ago
Sam Blackshear 6d46b0c7be [cleanup] stop printing `&`'s on `Var.t`'s
7 years ago
Sam Blackshear b57aa90d7d [quandary] don't crash if JSON source/sink is invalid procedure name
7 years ago
Sam Blackshear 4952f1ea3b [quandary] tests documenting limitations of sanitizers
7 years ago
Nikos Gorogiannis 484480f72f [deadlock] regression tests
7 years ago
Sam Blackshear d720eb52ba [quandary] check for subclassing in externally specified sources/sinks
7 years ago
Sam Blackshear 89a6d7e20d [racerd] don't report races in third-party code
7 years ago
Jeremy Dubreil d74f189dfe [infer] add the report kind to the list of expected output
7 years ago
Tony Hu 56872d8126 [java] Add command-line option to specify external Java packages
7 years ago
Sam Blackshear dbc8a4af50 [fix] rename racerd_path_stability -> stability
7 years ago
Sam Blackshear 4799fb6b82 [racerd] skeleton for testing access path stability
7 years ago
Sam Blackshear 66d03869ab [quandary] don't treat private Java methods as endpoints
7 years ago
Sam Blackshear f191819642 [litho] print name of component with missing prop
7 years ago
Sam Blackshear 87de52210c [litho] handle extra setters for resType props
7 years ago
Jeremy Dubreil 2288e66063 [infer][nullable checker] treat all aliases as not null when one is checked for null
7 years ago
Jeremy Dubreil 2228f7448d [infer][nullable checker] add tests for the early return
7 years ago
Sam Blackshear 584b10647d [racerd] new lock domain
7 years ago
Sam Blackshear 71a3843746 Revert occurence counting change
7 years ago
Sam Blackshear 37ab9ec391 [quandary] ProcessBuilder as sink
7 years ago
Sam Blackshear ab77cfe803 [quandary] thrift services as sources in Java
7 years ago
Sam Blackshear 27172f7f8a [quandary] java shell exec as sink
7 years ago
Sam Blackshear 268e0b9b5f [racerd] generalize access preconditions
7 years ago
Sam Blackshear 80b3d080ce [cleanup] sunset Context leaks
7 years ago
Sam Blackshear bc8fe4fb97 [java] don't warn on unclosed subclasses of non-resource types
7 years ago
Jeremy Dubreil 96ca6b6f02 [infer][bug hash] take the number of occurences of a report into account
7 years ago
Sam Blackshear ebfe8d1e72 [litho] move reporting of missing required props out of transfer functions
7 years ago
Sam Blackshear 2c6fb16636 [litho] support optional Prop's
7 years ago
Sam Blackshear 4545f36875 [litho] prototype of required `@Prop` checker
7 years ago
Radu Grigore eb91d59e40 [infer][PR] Fixed namespace for Java globals.
7 years ago
Sam Blackshear f5e7a6e6d7 [quandary] print index(es) of tainted parameters at each call
7 years ago
Jeremy Dubreil b089486b5a [infer][nullable checker] take subtyping into account when detecting pointer assignment
7 years ago
Sam Blackshear a50433f87f [cleanup] remove unused java dependencies
7 years ago
Sam Blackshear ab3da5b1d1 [cleanup] remove unused dynamic dispatch modes
7 years ago
Sam Blackshear afb04cf459 [thread-safety][experimental] switch access path may-alias condition to syntactic equality
7 years ago
Sam Blackshear f37344358b [experimental] interprocedural should_update analysis
7 years ago
Jeremy Dubreil 1f6d73269e [infer] simplify the API to report errors
7 years ago
Sam Blackshear 41129087e4 [quandary] only Intents created from Uris should be sources
7 years ago
Daiva Naudziuniene d8a004f0cc [LockConsistency] Adding conditional ownership to the rest of the formal parameters of constructors.
7 years ago
Sam Blackshear 7e8739de0a [quandary] more fine-grained issue types for Java
7 years ago
Sam Blackshear 432fa4913c [quandary] report all Intents constructed from URIs
7 years ago
Peter O'Hearn 700adc2d44 [racerd] deep ownership
7 years ago
Sam Blackshear 735b0b2ef7 [quandary] include source/sink caller in error message
7 years ago
Jeremy Dubreil 3e94c868f4 [infer] use the classname without the package name to compute the bug hash
7 years ago
Jeremy Dubreil ea29749671 [infer] simpler bug hash
7 years ago
Jeremy Dubreil 7dd78f4135 [infer][eradicate] example where the non-nullability is not correctly propagated
7 years ago
Jeremy Dubreil 10eef3bb1f [infer][java] add model for ImmutableList$Builder.add which crashes when given a null value
7 years ago
Sam Blackshear 427dad5aa6 [racerd] keep adding accesses after prefix of a path is owned
7 years ago
Sam Blackshear 181959216b [cleanup] remove harness-related code
7 years ago
Jeremy Dubreil 956d6d0a1d [infer][nullable checker] better error messages for nullable violations involving Clang materialized variables
7 years ago
Sam Blackshear 7428f36fbd [quandary] turn off dynamic dispatch handling in Java
7 years ago
Jeremy Dubreil 4283bf2602 [infer][java] re-use the Eradicate models for Preconditions.checkNotNull and the like
7 years ago
Sam Blackshear d221a0ae42 [racerd] don't report INTERFACE_NOT_THREAD_SAFE on thread-confined interfaces
7 years ago
Jeremy Dubreil d85d185402 [infer][java] Enable the @Nullable checker on Java
7 years ago
Jeremy Dubreil 0a1971a08d [infer][biabduction] keep the files in the trace even when the exact location of the method is not known
7 years ago
Sam Blackshear 4ee4ebb42a [hil] don't move any accesses across lock acquisition/release
7 years ago
Mehdi Bouaziz 6047264e4a [bug hash] Attempt for a better hash
7 years ago
Sam Blackshear 5e910929be [quandary] handle taint propagation in copying of structs/via derefs of pointers to structs
7 years ago
Sam Blackshear 67c45bed78 [quandary] fix invariant 1: "sink(s) with only non-footprint source" violations
7 years ago
Sam Blackshear 9bafbe0e1e [hil] don't move reads/writes outside of a critical section
7 years ago
Jeremy Dubreil 55c585e1e0 [infer][biabduction] remove the bi-abduction based check for uninitialized values
7 years ago
Anders Papitto a92ba5a2a9 Eradicate: model get and remove as nullable for stdlib Map variants
7 years ago
Sam Blackshear bc02bee737 [cleanup] rename thread-safety analysis
7 years ago
Jules Villard b1841c6699 [checkers] make all models and tests use checkers
7 years ago
Jules Villard 588142c908 [checkers] enable biabduction by default + docs and logs improvements
7 years ago
Sam Blackshear 169df0fe80 [thread-safety] infer accesses that need to be safe from lock usage
7 years ago
Sam Blackshear 3a5a0413bb [thread-safety] remove special treatment for immutable collections
7 years ago
Jules Villard 3790ca5487 [checkers] declare --resource-leak with the other checkers
7 years ago
Jules Villard b95f29c8d1 various minor improvements
7 years ago
Jeremy Dubreil 9282e30d72 [infer][checkers] move the tests for the lab in it own directory
7 years ago
Jeremy Dubreil 03cb052ad9 [infer][checkers] run the Java biabduction tests using the checkers framework
7 years ago
Sam Blackshear b57084902d [thread-safety] better error messages for write-write races that are distinct, but conflicting writes rather than self-races
7 years ago
Sam Blackshear 4255d918ad [thread-safety][cleanup] clean up error messages/comments
7 years ago
Kyriakos Nikolaos Gkorogiannis 5c1fab6ceb [thread-safety] Rebase accesses in callees onto variables of the caller, where possible.
7 years ago
Sam Blackshear 32583aa876 [thread-safety] Change meaning of @ThreadSafe to "can run in parallel with any thread including itself"
7 years ago
Josh Berdine 96af301910 [thread-safety] More informative printing of access paths
7 years ago
Sam Blackshear 14d0e2a786 [thread-safety] remove custom compare for AccessListMap
7 years ago
Jeremy Dubreil a7e6ba7b2b [infer][java] add support for @Nonnull on skipped functions
7 years ago
Jeremy Dubreil e17e157ae1 [infer][java] no longer combine the type environment with the type environment of the models
7 years ago
Jeremy Dubreil 4c88e986b7 [infer][java] transfer the resource ownership to the container when sorting a Closeable into a HashMap
7 years ago
Jeremy Dubreil 8740e8a11a [infer][java] no longer report the resource leaks when using the tracing mode
7 years ago
Jeremy Dubreil 2f0068d180 [infer][java] modeling more methods for HashMap
7 years ago
Sam Blackshear ca51c72f3a [thread-safety] support assertOnBackgroundThread and similar
7 years ago
Sam Blackshear 1e605bdd94 [thread-safety] new threads domain
7 years ago
Sam Blackshear b3e8e972d6 [thread-safety] separate warning type for interfaces called in non-threadsafe context
7 years ago
Sam Blackshear f93e500232 [thread-safety] gate de-duplication with Config.filtering
7 years ago
Jules Villard d2b4f3c8da [config] add option to force deletion of results dir
7 years ago
Sam Blackshear b61a34007a [thread-safety] re-enable check for calling non-threadsafe interface
7 years ago
Sam Blackshear d08bebe563 [reporting] don't report duplicate warnings on different instantiations of the same template
7 years ago
Jeremy Dubreil 42fc24ebfd [infer][biabduction] fix the dynamic resolution of non virtual calls
7 years ago
Sam Blackshear 6533aa65c6 [quandary] deserialization as sink
7 years ago
Sam Blackshear 5ff6e2c786 [quandary] EditText.getText() as source
7 years ago
Jeremy Dubreil f7258c2ab4 [infer][java] fix the translation of the finally branch
7 years ago
Jeremy Dubreil 94ff44ed57 [infer][biabduction] add skipped functions to the trace when known
7 years ago
Jeremy Dubreil 20c57ad549 [infer][biabduction] add more context information about the reason to skip a method during the symbolic execution
7 years ago
Jeremy Dubreil 9a3ab41371 [infer][java] the translation was no adding the fields from the implemented interfaces
7 years ago
Jeremy Dubreil 1a221e798c [infer][java] make the translation and analysis of abstract methods and native methods consistent
7 years ago
Jeremy Dubreil d4565107f6 [infer][biabduction] add the name of the skipped methods to the trace to make them more readable
7 years ago
Sam Blackshear 3b56b93ae5 [quandary] apply summary for sinks
7 years ago
Jeremy Dubreil 54eaaa9573 [infer][biabduction] remove the check for null test after dereference on Java
7 years ago
Jules Villard 69299ba675 [filtering] improve issue type filtering CLI
7 years ago
Sam Blackshear 3a7d50e15b [thread-safety] more precise ownership domain
7 years ago
Sam Blackshear 41fb45f388 [thread-safety] add OwnedIf attribute to all formals at the beginning
7 years ago
Jules Villard 8de2b88783 [make] s/ocamlbuild/jbuilder/g
7 years ago
Sam Blackshear 9c99c38b22 [quandary] handle procedures that have name conflict with sinks, but different number of args
7 years ago
Sam Blackshear b61a68e859 [quandary] HTML creation as a sink
7 years ago
Jeremy Dubreil 2a8e192280 [infer][biabduction] disable the reporting of return value ignored
7 years ago
Jeremy Dubreil 99b412e165 [infer][checkers] remove the Eradicate analyzer option
7 years ago
Jeremy Dubreil 15a8848502 [infer][biabduction] always reuse the same abduced return variable for unknown methods in Java
7 years ago
Jeremy Dubreil 53278f780c [infer][biabduction] simplify the symbolic execution of the execute load instruction
7 years ago
Sam Blackshear c6ee53de50 [thread-safety] relax treatment of array aliasing
7 years ago
Sam Blackshear 6b792e0015 [thread-safety] track container reads and report read/write races
7 years ago
Sam Blackshear 1b35411a5f [thread-safety] fix understanding of non-atomic writes to doubles/longs
7 years ago
Sam Blackshear 2dcde3a812 [thread-safety] make a distinguished access kind for container writes
7 years ago
Jeremy Dubreil f49d292c3b [infer][backend] remove the bi-abduction based code for taint analysis
7 years ago
Sam Blackshear 9246d1357c [thread-safety] temporarily disable non-threadsafe interface checks
7 years ago
Sam Blackshear 1fb9fb48f5 [thread-safety] warning when interface method is called from thread-safe context without annotation
7 years ago
Sam Blackshear 72e778d094 [thread-safety] tests for escape analysis
7 years ago
Jeremy Dubreil bafd1cf412 [infer][java] Infer should not suggest @Nullable on captured parameters
7 years ago
azhdar 34d6a43cdb [infer][PR] add cursorClosedCheckNullCheckClosed test
7 years ago
Jeremy Dubreil 927a6cfbb6 [infer][quandary] add the tests from the bi-abduction based taint analysis to the Quandary tests
7 years ago
Jeremy Dubreil 987347ceca [infer][java] Infer should not suggest to add @Nullable for the field nullified on Fragement onDestroyView
8 years ago
Kyriakos Nikolaos Gkorogiannis b4f6308495 [thread-safety] Restrict propagation of attributes in an assignment; treat ownership propagation more strictly.
8 years ago
Sam Blackshear 03703e316c [thread-safety] understand that Pools.Pool.acquire returns ownership
8 years ago
Kyriakos Nikolaos Gkorogiannis cfe79cf1ca [thread-safety] Add SimplePool as container, mild refactoring of container handling.
8 years ago
Jeremy Dubreil 7dd7b460e0 [infer][java] skip reports on generated methods
8 years ago
Jeremy Dubreil c51458f7a8 [infer][ondemand] no longer use deprecated reporting function for the suggest nullable checker
8 years ago
Sam Blackshear 7b8eef52f8 [thread-safety] fix bad read/write race traces
8 years ago
Sam Blackshear 08586f3e81 [checkers] logging to summary in printf args checker
8 years ago
Kyriakos Nikolaos Gkorogiannis bee8e21633 [thread-safety] Add model and tests for SimpleArrayMap container.
8 years ago
Sam Blackshear 0714b93b14 [quandary] use sink index info when expanding traces
8 years ago
Jeremy Dubreil 8917536944 [eradicate] model System.getenv as @Nullable
8 years ago
Jia Chen bbed46de47 [infer][java] Suggest @Nullable on fields that are compared to null
8 years ago
Sam Blackshear 3135560283 [quandary] move trace expansion logic into Quandary
8 years ago
Sam Blackshear 2089cd8a34 [thread-safety] container models for SparseArray/SparseArrayCompat
8 years ago
Sam Blackshear aa50d90a7d [quandary] get rid of report_reachable bool in taint specifications
8 years ago
Kyriakos Nikolaos Gkorogiannis 7be1bfa89f [threadsafety] Fix some FPs added by may-alias analysis.
8 years ago
Jia Chen 6fc287656f Transitively track null assignment in NullabliltySuggest
8 years ago
Sam Blackshear 4ef487928c [quandary] make passthroughs optional
8 years ago
Sam Blackshear 38d3946c71 [quandary] support for basic return value sanitizers
8 years ago
Jia Chen 07c6fbef81 Added an initial implementation of a checker that suggest the use of @Nullable
8 years ago
Peter O'Hearn 34ae89cf35 [threadsafety] Model more xThreadUtil methods
8 years ago
Kyriakos Nikolaos Gkorogiannis 750cc65092 [threadsafety] fix false negative on locations that may alias.
8 years ago
Peter O'Hearn 0c8222cb2f [threadsafety] Model isMainThread()
8 years ago
Sam Blackshear 927b08346e [SRI summer school] skeleton code for lab
8 years ago
Peter O'Hearn 0abceb730b [threadsafety] record threaded information alongside accesses and use disjunction for thread join
8 years ago
Jules Villard b964f6ab74 [CLI] options to unset default checkers and to print active checkers
8 years ago
Jeremy Dubreil 441bf7131a [infer][CLI] remove the Tracing analyzer option and only rely on the --tracing option for the biabduction analysis
8 years ago
Jeremy Dubreil d470ed6edc [infer][models] model java.io.BufferedReader as a wrapper
8 years ago
Jeremy Dubreil 64ab959486 [infer][java] model the Eradicate assertion utils for the biabduction analysis
8 years ago
Jeremy Dubreil 7d0375d9ee [infer][checkers] add missing command line flags to enable/disable the checkers enabled by default
8 years ago
Sam Blackshear d446f0f800 [quandary] clipboard as a source
8 years ago
Jeremy Dubreil 7e12885f98 [infer][checkers] remove the quandary analyzer option and rely on the --quandary flag only
8 years ago
Jeremy Dubreil ef354e6e2b [infer][checkers] remove the threadsafey as analyzer option and rely on the --threadsafety flag only
8 years ago
Sam Blackshear 7b44236874 [thread-safety] remove hacky special case for Builder's
8 years ago
Peter O'Hearn 3db1f9e94c [threadsafety] Treat clone() as aquiring ownership
8 years ago
Jeremy Dubreil c0c813c657 [infer][java] only report one annotation reachability issue per end of call stack
8 years ago
Sam Blackshear 3c0cf115b3 [quandary] add option for parsing endpoints from inferconfig
8 years ago
Sam Blackshear a4f2d99be9 [quandary] a few more ContentProvider sinks
8 years ago
Sam Blackshear 20aff78b36 [quandary] ContentProvider Uri's as sources/files as sinks
8 years ago
Sam Blackshear 3024d9aed2 [quandary] more IPC sources
8 years ago
Sam Blackshear bcbb032052 [quandary] WebView.postUrl is a sink
8 years ago
Sam Blackshear 3c7361a83d [thread-safety] assume findViewById returns ownership
8 years ago
Sam Blackshear b0216035f4 [frontend] don't treat Sawja-generated ternary operator vars as SSA tmps
8 years ago
Sam Blackshear 1f9c2cde85 [thread-safety] clean up error message printing
8 years ago
Peter O'Hearn 4c2ef788a1 [infer][threadsafety] Use disjunction in the join for threaded
8 years ago
Sam Blackshear 00f948e924 [quandary] don't add callee-local state to the caller
8 years ago
Sam Blackshear 92011790c2 [quandary] optimize handling of unknown code by adding notion of 'taintable types'
8 years ago
Sam Blackshear d7f39970d1 [thread-safety] report both a read and write stack trace in R/W race reports
8 years ago
Sam Blackshear 899cfadfbd [access paths] don't compare types of bases
8 years ago
Sam Blackshear 52dbd129cd [quandary] don't complain about transferring extras between intents
8 years ago
Sam Blackshear 417ddb1bc0 [quandary] make params of WebViewClient methods sources where appropriate
8 years ago
Sam Blackshear 8c5b15f65b [thread-safety] report more warnings by inferring when state is accessed by methods marked `@ThreadSafe` and other methods.
8 years ago
Sam Blackshear 88430c3e51 [quandary] make index field optional for custom sinks specified in JSON
8 years ago
Sam Blackshear 615489a619 [thread-safety] don't report on protected reads
8 years ago
Sam Blackshear c255823673 [quandary] clean up `Intent` sinks
8 years ago
Sam Blackshear ff3159953d [thread-safety] don't report read-write races when the write is in a private or autogenerated proc
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
Paco Estevez Garcia 5482f110c1 Add type path_exec to represent an skipped path of execution. Add logic to symExec to report skipped paths
8 years ago
Jules Villard 3ab6c43fb6 [tests] awesomize make output
8 years ago
Jules Villard cd421b4a5f [make] print @ commands when passed VERBOSE=1
8 years ago
Sam Blackshear a5ee1f155c [thread-safety] tests for thread-safe methods
8 years ago
Sam Blackshear a800908797 [thread-safety] fix de-duplication logic
8 years ago
Sam Blackshear eccc3a8e4e [thread-safety] move reporting of unprotected reads into aggregation function
8 years ago
Sam Blackshear 5130952ee8 [thread-safety] move reporting of unprotected writes into aggregation function
8 years ago
Sam Blackshear 0f6439cf3c [thread-safety] report on write outside sync, read inside sync races
8 years ago
Sam Blackshear d5ed44994f [thread-safety] new SynchronizedCollection annotation
8 years ago
Jeremy Dubreil 0f70ca02e3 [infer][java] Simplify the abstract domain for the annotation reachability checker
8 years ago
Sam Blackshear 6a39585999 [thread-safety] treat non-interface methods with no summary as angelic
8 years ago
Sam Blackshear 31069dd1a7 [quandary] remove assignments to formals from summaries
8 years ago
Jules Villard 4ec3690413 [tests] add a `replace` target to all tests
8 years ago
Peter O'Hearn c52054d3d1 [threadsafety] More races with main thread
8 years ago
Sam Blackshear 08a7f57731 [thread-safety] warn on private methods marked ThreadSafe
8 years ago
Sam Blackshear 68af2afb77 [quandary] more tests
8 years ago
Jeremy Dubreil 707d514386 [infer][java] do not report `return not nullable` on lambdas
8 years ago
Sam Blackshear e7e32b038b [thread-safety] classify protected-if reads/writes in callees as protected when a lock is held in the caller
8 years ago
Martino Luca a7b947f971 Add support to format reports natively
8 years ago
Peter O'Hearn 089600bdcd [threadsafety] unsynched reading from main thread
8 years ago
Cristiano Calcagno 434cfbfb15 [eradicate] Add support for new annotation @PropagatesNullable
8 years ago
Sam Blackshear 779ec1f0ad [thread-safety] give full traces for read/write races
8 years ago
Sam Blackshear 9066e5bd08 [thread-safety] account for ownership via reflective allocation
8 years ago
Peter O'Hearn e023dddba2 [threadsafety] Races and non-races involving assertMainThread().
8 years ago
Sam Blackshear 9e293eaa64 [thread-safety] add choice variables to support partial path-sensitivity
8 years ago
Jeremy Dubreil 047bb6796a [infer][threadsafety] Run ThreadSafety as part of the checkers
8 years ago
Jeremy Dubreil e23b04180e [infer][ondemand] run all the registered checkers in sequence
8 years ago
Sam Blackshear 60dac45461 [quandary] don't call read_summary on the current procedure while creating a trace
8 years ago
Cristiano Calcagno 5c9b61877a [Eradicate] Code cleanup and add test cases
8 years ago
Peter O'Hearn 5062ac3173 [thread-safety] Model assertManThread and assertHoldsLock
8 years ago
Jules Villard dac8906d86 [make] make sure makefile uses config-time values
8 years ago
Martino Luca 5448a95ce7 [Infer][Localise] Group all issue types in one place, and provide their human-readable representation
8 years ago
Sam Blackshear 56b057acb8 [thread-safety] assume formals of DI constructors are owned
8 years ago
Peter O'Hearn 11937cb076 [infer][threadsafety] model tryLock() for java.util.concurrent.locks.Lock
8 years ago
Peter O'Hearn 2cf3bfeea1 [infer][threadsafety] Stop Unprotected Write and Read/Write races from being reported on the same line
8 years ago
Sam Blackshear bd5eb3c5cf [quandary] don't allow projection of non-footprint idents
8 years ago
Sam Blackshear 0f74016ef5 [thread-safety] add callee write as protected-if if it's conditionally owned in caller
8 years ago
Cristiano Calcagno 5aa714b237 [Eradicate] Improve detection of circularities in field initialization
8 years ago
Sam Blackshear 5134ea36ed [thread-safety] enable defining aliases of @ThreadSafe in .inferconfig
8 years ago
Sam Blackshear 1ef7c253b2 [thread-safety] report on protected write/unprotected read races
8 years ago
Sam Blackshear ea8826599f [thread-safety] track protected writes
8 years ago
Jeremy Dubreil 08980b57e5 [infer][ondemand] make the Procname API more robust by using Typename.t for the class name part of a method name
8 years ago
Peter O'Hearn f7f30045cb [infer][threadsafety] Dedup, chapter 2.
8 years ago
Martino Luca 3eecb243e6 Customize tests output via InferPrint's command-line
8 years ago
Jeremy Dubreil b63a656dc4 [infer][tests] cleanup of the Cursor NPE test file
8 years ago
Sam Blackshear 69df171632 [thread-safety] unify @AssumeThreadSafe and @ThreadSafeMethod into @ThreadSafe(enableChecks = ...)
8 years ago
Peter O'Hearn 1580e5b3bb [infer][thread-safety] Better error message for container writes
8 years ago
Peter O'Hearn c080cbb60f [threadsafety] De-duplicate the reports
8 years ago
Sam Blackshear 040140ba52 [thread-safety] model SynchronizedPool.acquire as acquiring ownership
8 years ago
Peter O'Hearn df154b4135 [threadsafety] read/write races
8 years ago
Sam Blackshear 5c2ee8d85f [thread-safety] model ThreadLocal.get() as acquiring ownership
8 years ago
Sam Blackshear b229b39a1b [thread-safety] Add @ReturnsOwnership annotation for methods and handle it in the thread-safety analysis
8 years ago
Sam Blackshear 919b35f50a [quandary] better taint propagation for Intent's
8 years ago
Sam Blackshear e15121c928 [thread-safety] model DI via Provider.get as acquiring ownership
8 years ago
Sam Blackshear 5cdee51ed5 [checkers] allow custom sources and sinks in annotation reachability
8 years ago
Sam Blackshear 61e4e6e1ed [thread-safety] propagate attributes across binary/unary expressions
8 years ago
Jules Villard 105b8f83d3 [tests] disregard traces in Java harness test
8 years ago
Sam Blackshear f085023aff [thread-safety] model certain methods of Resources as @Functional
8 years ago
Sam Blackshear b8f9c774f3 [thread-safety] support conditional writes to containers
8 years ago
Jeremy Dubreil 61b49553b5 [infer][java] Add @SuppressLint as part of the Infer annotations
8 years ago
Jeremy Dubreil 2ded1d7a0c [infer][java] Simplify some of the models of Java resources [3/n]
8 years ago
Jeremy Dubreil 266686457a [infer][java] Simplify some of the models of Java resources [2/n]
8 years ago
Jeremy Dubreil 574d640af0 [infer][java] Simplify some of the models of Java resources [1/n]
8 years ago
Sam Blackshear c67de3e827 [thread-safety] add string parameter to @ThreadConfined
8 years ago
Sam Blackshear a3e3fdb781 [quandary] fix bug in summary application
8 years ago
Jeremy Dubreil 0139ca211b [infer][java] Add an example of dynamic dispatch handling on fields
8 years ago
Sam Blackshear c4fbf4e3fb [thread-safety] propagate attributes across casts
8 years ago
Sam Blackshear 42188eb105 [thread-safety] add understanding of conditional ownership
8 years ago
Jeremy Dubreil 13cdff1532 [infer][java] Dynamic dispatch: fix wrong level of indirection on pointers when specialzing methods
8 years ago
Cristiano Calcagno 319e3ed271 [Eradicate] Change Eradicate's join to forget values not present on both paths
8 years ago
Sam Blackshear 9ed282b28b [thread-safety] handle constructors by understanding that a constructor owns `this`
8 years ago
Jeremy Dubreil a416b7c90d [infer][java] Add a model for Process.destroyForcibly()
8 years ago
Sam Blackshear 0e77e36235 [thread-safety] propagate @Functional attribute across boxing of primitive types
8 years ago
Sam Blackshear 6338997cf5 [quandary] don't clobber existing taint on receiver when propagating taint from unknown call
8 years ago
Sam Blackshear d41b500659 [thread-safety] treat constants as owned
8 years ago
Jeremy Dubreil c2b967d27b [infer] Dynamic dispatch: use the OCaml type system to implement the invariant that the method specialization should only happen on object types
8 years ago
Sam Blackshear 6c0c3b44b4 [annotations] make override_exists recursive
8 years ago
Sam Blackshear f6e8bf0f3f [thread-safety] don't warn on external accesses to fields of ThreadConfined classes
8 years ago
Jeremy Dubreil c5e962e231 [infer][test] The buck integration BUCK file for the integration test was refering to a file built by make
8 years ago
Jeremy Dubreil 4e02b3c525 [infer][tests] rescue ghost file for Cursor NPE test
8 years ago
Jeremy Dubreil b6fae5cd46 [infer][eradicate] Consider junit.framework.TestCase.setUp as an initializer
8 years ago
Jeremy Dubreil 90f4c83ef2 [infer][java] Add some more test cases for dynamic dispatch
8 years ago
Sam Blackshear f9280b682f [thread-safety] don't warn on accesses to fields assigned to @Functional calls
8 years ago
Sam Blackshear 70df06a596 [thread-safety] don't consider VisibleForTesting methods as public
8 years ago
Sam Blackshear cc8ffd9d1e [quandary] allow regexes in defining quandary sources/sinks in inferconfig
8 years ago
Sam Blackshear 3ee349ee23 [thread-safety] warn on unsafe accesses to lists
8 years ago
Jeremy Dubreil 5322c71063 [infer][backend] find a better trade-off for the value of the SymOps timeout
8 years ago
Sam Blackshear b227ee58a6 [thread-safety] handle some annotations as aliases of ThreadConfined
8 years ago
Sam Blackshear 369feb4149 [thread-safety] allow ownership to be transferred via return
8 years ago
Sam Blackshear f372b6cb2f [quandary] allow sinks to be specified in inferconfig
8 years ago
Sam Blackshear 5bddb1e548 [quandary] allow sources to be specified in inferconfig
8 years ago
Sam Blackshear e132188361 [thread-safety] warn on unsafe accesses in overrides of methods annotated with @ThreadSafeMethod
8 years ago
Cristiano Calcagno 3f8ee7df49 [Eradicate] Fix issue in Eradicate's check for field initialization
8 years ago
Sam Blackshear f79a53e1c8 [thread-safety] add string param to AssumeThreadSafe
8 years ago
Sam Blackshear c19bee7772 [quandary] for instance methods with no return value, propagate the taint to the receiver
8 years ago
Sam Blackshear b9694ef086 [thread-safety] warn on unsafe writes in constructors
8 years ago
Sam Blackshear c4c495fbe5 [thread-safety] propagate conditional writes to callers
8 years ago
Sam Blackshear 4373945e74 [thread-safety] don't warn on writes rooted in a parameter owned by the callee
8 years ago
Sam Blackshear e565010cf3 [thread-safety] don't warn on writes to volatile fields
8 years ago
Jules Villard ca784cdb41 [cli] warn about deprecated options, clean up infer repo
8 years ago
Sam Blackshear 618e9c9338 [thread-safety] add @AssumeThreadSafe annotation to assume thread-safety of a method without checking it
8 years ago
Sam Blackshear f4b1af6f91 [thread-safety] allow @ThreadConfined annotation on methods
8 years ago
Sam Blackshear d39d4cfa20 [thread-safety] use jsr-305 versions of ThreadSafe/NotThreadSafe rather than defining custom annotations
8 years ago
Sam Blackshear 72e17403fa [thread-safety] add and support @ThreadSafeMethod annotation
8 years ago
Sam Blackshear 1891a16f8f [thread-safety] suppress warnings on methods annotated with @OnEvent
8 years ago
Sam Blackshear 8b57278c70 [thread-safety] support fields annotated with @ThreadConfined
8 years ago
Sam Blackshear e5ef592f11 [quandary] add a few missing Intent sinks
8 years ago
Sam Blackshear ee2d0c9226 [quandary] add Intent's passed to onActivityResult/onNewIntent as sources
8 years ago
Sam Blackshear 4cb03f4670 [checkers] add ui-thread/non-ui thread reasoning to annotation reachability checker
8 years ago
Sam Blackshear 73f219560d [thread-safety] warn on unsafe accesses to maps
8 years ago
Sam Blackshear 2a4b29fedb [quandary] Warn on reusing result returned from getIntent
8 years ago
Sam Blackshear d86f777132 [quandary] considering methods of subclasses of Activity, SharedPreferences etc. as sources/sinks too
8 years ago
Sam Blackshear 504735e548 [java] update android.jar version to 23
8 years ago
Sam Blackshear 9c48178e4a [quandary] model some formals of Webview methods as tainted
8 years ago
Peter O'Hearn 7bcc7e421d [threadsafety] don't warn on methods from classes annotated ThreadConfined
8 years ago
Sam Blackshear 68c0705f26 [thread-safety] don't warn on methods annotated with UiThread
8 years ago
Sam Blackshear 1403e9c898 [quandary][java] Intent.parseIntent/Intent.parseUri should propagate taint, not create it
8 years ago
Josh Berdine 142494e7ae Add missing dir to java test clean
8 years ago
Jeremy Dubreil 4a3573b60e [infer][java] Use lazy dynamic dispatch by default
8 years ago
Jules Villard 72d065017b [tests] run "diff" from infer/tests
8 years ago
Sam Blackshear 06e0f6fbc9 [quandary] support tainted formals
8 years ago
Josh Berdine 1a5ac9e62b Use natural order on hpred, optionally ignoring instrumentation
8 years ago
Peter O'Hearn 4057ffadcf [threadsafety] Change THREAD_SAFETY_ERROR to THREAD_SAFETY_VIOLATION
8 years ago
Sam Blackshear 2a567d3abe [quandary] summaries are access trees too
8 years ago
Sam Blackshear cd1c9750f4 [infer] models for common types of Java Lists
8 years ago
Peter O'Hearn 23a0a611dc [threadsafety] Fix situation where @NotThreadSafe is reported on, when super is @ThreadSafe
8 years ago
Josh Berdine 3dfaa9ed7b Remove support for SuppressWarnings annotations
8 years ago
Cristiano Calcagno d670bdd61a [eradicate] Add support for methods that don't return (System.exit)
8 years ago
Sam Blackshear ee90e10491 [thread-safety] don't report on fields of immutable collections
8 years ago
Sam Blackshear 79154adf9e [thread-safety] use ownership info to avoid false alarms
8 years ago
Josh Berdine 178451e117 Disable timeouts during model analysis
8 years ago
Sam Blackshear 7682017f93 [quandary] only show relevant passthroughs in trace
8 years ago
Jules Villard 902a0cd001 [make] make crashcontext tests replace-proof
8 years ago
Jeremy Dubreil 715f6ffa7e [infer][java] match the annotation by class name, forgetting the package, instead of checking if the end of the annotation matches
8 years ago