520 Commits (ec118e62a794426f3f429428650cdad83c41d132)

Author SHA1 Message Date
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
Sam Blackshear 901786e0c5 [quandary] detect intents configured with external values
8 years ago
Jeremy Dubreil 027bdc32e8 [infer][genrule] Add example of Buck DEFS macro to generate Infer analysis targets
8 years ago
Sam Blackshear 831786240a [quandary] ignore null assignments to return value in void functions
8 years ago
Sam Blackshear e212183e7e [thread-safety] don't count accesses in methods of builder classes
8 years ago
Sam Blackshear 4b98543d35 [traces] don't hang when unrolling a mutually recursive trace
8 years ago
Jeremy Dubreil 532621def1 [infer][tests] No longer rely on Infer being in the PATH for the genrule integration test
8 years ago
Sam Blackshear c1205c1453 [thread-safety] model ReadLock/WriteLock
8 years ago
Sam Blackshear 5743351906 [thread-safety] don't report thread safety violations due to calls to constructors
8 years ago
Jeremy Dubreil 7b884144b5 [infer][tests] More complete test cases for the models of the Java Integer class
8 years ago
Sam Blackshear 0972c8d262 [quandary] don't report FP's due to flow-insensitive traces
8 years ago
Sam Blackshear 3b161a3737 [thread-safety] interprocedural traces for thread safety checker
8 years ago
Sam Blackshear 579b982359 [thread-safety] Lay the groundwork for interprocedural trace-based reporting
8 years ago
Cristiano Calcagno 827d7c3d9c [backend][perf] Address top performance bottleneck from profiling the backend.
8 years ago
Sam Blackshear 01136cc326 [thread-safety] interprocedural analysis
8 years ago
Sam Blackshear 937ae12f29 [thread-safety] adding models for lock methods
8 years ago
Jeremy Dubreil e269f2a3fd [infer][java] basic support to run Infer using Buck genrules
8 years ago
Andrzej Kotulski 6192cb98b4 [DB] Use realpath when calling source_file_from_abs_path
8 years ago
Sam Blackshear 9e9ca333f9 [thread-safety] use boolean domain to track locks
8 years ago
Sam Blackshear ad5ff00dcd [quandary] making it easier to specify behavior for unknown functions
8 years ago
Andrzej Kotulski b6b7593cf6 [tests] Make project root infer/test/ for java tests
8 years ago
Andrzej Kotulski b0a0fbcc35 [tests] fix tests for open source
8 years ago
Sam Blackshear 935018ae9e [quandary] cheaper handling of unknown code
8 years ago
Dulma Churchill 8415b6c38b [backend] do not log analysis_stops in debug_exceptions mode
8 years ago
Sam Blackshear a6121a9fb0 [guarded-by] support `Classname.fieldname` syntax
8 years ago
Peter O'Hearn f2d86cb90c [GuardedBy] Model of trylock in ReentrantLock.java
8 years ago
Peter O'Hearn 733646ba09 [GuardedBy] Fix Subclassing False positive
8 years ago
Sam Blackshear adacee51e2 [quandary] switch to --issues-tests printing
8 years ago
Jules Villard 15d80e04df [tests] record summary of bug traces
8 years ago
Jules Villard 281d5b49fe [tests] sort bugs in InferPrint
8 years ago
Jules Villard 70720798d8 [tests] share javac.make more broadly
8 years ago
Peter O'Hearn 171d1d6d43 [threadsafety] run thread safety checker on its own
8 years ago
Sam Blackshear 75d6fb30e4 [frontend] support Java 8
8 years ago
Jeremy Dubreil 21a568aba8 [infer][java] Fix spurious class cast excpetion reports when casting arrays of primitive types
8 years ago
Sam Blackshear e8b61f6dbb [quandary] fix false positives from procedures that are both sources and sinks
8 years ago
Sam Blackshear 4b4e4e6f4d [quandary] understand that parameters are passed by value in Java
8 years ago
Jeremy Dubreil eb197a1cd4 [infer][tests] Make was always exiting with exit code 0 even in the case of test failures
8 years ago
Jeremy Dubreil 274851fc53 [infer][java] mark all methods as defined
8 years ago
Sam Blackshear 8784b9b946 [backend] fix cursor leak FPs
8 years ago
Sam Blackshear ba7cef4657 [backend] differentiate unknown methods and methods with empty summaries
8 years ago
Peter O'Hearn be977e7318 Turn GuardedBy Reporting on by default
8 years ago
Jules Villard d5e7ee0d82 [tests] run tests using report.json and record all bugs + exceptions
8 years ago
Sam Blackshear 0b9727214d [quandary] support `StringBuilder`'s and other methods for propagating `String` taint
8 years ago
Sam Blackshear fde7a6ecf3 [quandary] support for full interprocedural traces
8 years ago
Josh Berdine 32a60e05f4 Unbreak master
8 years ago
Sam Blackshear 768a60caca [quandary] support for full interprocedural traces
8 years ago
Peter O'Hearn 2d424b7779 skipping ReadWrite Locks
8 years ago
Sam Blackshear 874e7f000d [quandary] functions that transitively return sources are sources, not passthroughs
8 years ago
Sam Blackshear d76a7ef43a [quandary] functions that transitively call sinks are sinks, not passthroughs
8 years ago
Peter O'Hearn e91742afea Support @SuppressLint("InvalidAccessToGuardedField")
8 years ago
Sam Blackshear d7ae77c7c2 [quandary] make intent/logging private data tests intraprocedural
8 years ago
Sam Blackshear 678d0ff4e9 [quandary] don't double-report when applying summaries
8 years ago
Sam Blackshear 21f9bd1ed6 [quandary] fix crash from returning exceptions that read from the environment
8 years ago
Sam Blackshear 7ae58d78c3 [infer] fix .class synchronization false-positive in guarded-by check
8 years ago
Sam Blackshear 8f68f61ec9 [quandary] remove stripped logging sinks
8 years ago
Jules Villard bc6226942e fix tests
8 years ago
Peter O'Hearn ec45b44dfd [threadsafety] Better error message when warning on subclasses of @ThreadSafe classes
8 years ago
Sam Blackshear 3ba67bac1a [quandary] more privacy sources
8 years ago
Josh Berdine 175e85525d [tests] Convert java tests to avoid phony targets
8 years ago
Sam Blackshear 319463b3bc [quandary] propagating taint from unknown procedures and constructors
8 years ago
Josh Berdine a9192cffd6 [config] Eliminate ad hoc environment variables
8 years ago
Sam Blackshear 6fc1a7e20f [quandary] reporting on array passed to sink when contents of array are tainted
8 years ago
Peter O'Hearn 2601af5ade [threadsafety] don't report on class initializers
8 years ago
Peter O'Hearn 69f7ed5f6d [threadsafe] fix the code for recognizing constructors
8 years ago
Sam Blackshear 08509fb2ab [quandary] don't double-report flows
8 years ago
Sam Blackshear 512de69e13 [quandary] handle dynamic dispatch
8 years ago