From a6ab0cbb0d516d28ced57f5c3f606e337322e60a Mon Sep 17 00:00:00 2001 From: Jules Villard Date: Wed, 8 May 2019 03:54:40 -0700 Subject: [PATCH] [CLI] print all available issue types Summary: Previously there was no way of getting that list from the manual. Reviewed By: jeremydubreil Differential Revision: D15158598 fbshipit-source-id: 1705ed59d --- infer/man/man1/infer-full.txt | 178 ++++++++++++++++++++++++++++---- infer/man/man1/infer-report.txt | 178 ++++++++++++++++++++++++++++---- infer/man/man1/infer.txt | 178 ++++++++++++++++++++++++++++---- infer/src/base/Config.ml | 23 +++-- 4 files changed, 496 insertions(+), 61 deletions(-) diff --git a/infer/man/man1/infer-full.txt b/infer/man/man1/infer-full.txt index 937d1a380..9f9a96df5 100644 --- a/infer/man/man1/infer-full.txt +++ b/infer/man/man1/infer-full.txt @@ -302,25 +302,167 @@ OPTIONS fine-grained filtering over which types of issue should be reported once the checkers have run. In particular, note that disabling issue types does not make the corresponding checker not - run. By default, the following issue types are disabled: - ANALYSIS_STOPS, ARRAY_OUT_OF_BOUNDS_L1, ARRAY_OUT_OF_BOUNDS_L2, - ARRAY_OUT_OF_BOUNDS_L3, BUFFER_OVERRUN_L4, BUFFER_OVERRUN_L5, - BUFFER_OVERRUN_U5, CLASS_CAST_EXCEPTION, CONDITION_ALWAYS_FALSE, - CONDITION_ALWAYS_TRUE, DANGLING_POINTER_DEREFERENCE, - DIVIDE_BY_ZERO, EXPENSIVE_ALLOCATION_CALL, - EXPENSIVE_EXECUTION_CALL, EXPENSIVE_EXECUTION_CALL_IN_COLD_START, - EXPENSIVE_IO_TIME_CALL, - GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL, - INFINITE_EXECUTION_TIME_CALL, INTEGER_OVERFLOW_L5, - INTEGER_OVERFLOW_U5, NULL_TEST_AFTER_DEREFERENCE, - RETURN_VALUE_IGNORED, STACK_VARIABLE_ADDRESS_ESCAPE, - UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION, - UNTRUSTED_BUFFER_ACCESS, UNTRUSTED_HEAP_ALLOCATION, - ZERO_EXECUTION_TIME_CALL. + run. Available issue types are as follows: + + ANALYSIS_STOPS (disabled by default), + ARRAY_OUT_OF_BOUNDS_L1 (disabled by default), + ARRAY_OUT_OF_BOUNDS_L2 (disabled by default), + ARRAY_OUT_OF_BOUNDS_L3 (disabled by default), + Abduction_case_not_implemented (enabled by default), + Array_of_pointsto (enabled by default), + Assert_failure (enabled by default), + BUFFER_OVERRUN_L1 (enabled by default), + BUFFER_OVERRUN_L2 (enabled by default), + BUFFER_OVERRUN_L3 (enabled by default), + BUFFER_OVERRUN_L4 (disabled by default), + BUFFER_OVERRUN_L5 (disabled by default), + BUFFER_OVERRUN_R2 (enabled by default), + BUFFER_OVERRUN_S2 (enabled by default), + BUFFER_OVERRUN_U5 (disabled by default), + Bad_footprint (enabled by default), + CHECKERS_ALLOCATES_MEMORY (enabled by default), + CHECKERS_ANNOTATION_REACHABILITY_ERROR (enabled by default), + CHECKERS_CALLS_EXPENSIVE_METHOD (enabled by default), + CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED (enabled by default), + CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default), + CHECKERS_IMMUTABLE_CAST (enabled by default), + CHECKERS_PRINTF_ARGS (enabled by default), + CLASS_CAST_EXCEPTION (disabled by default), + CLASS_LOAD (enabled by default), + COMPARING_FLOAT_FOR_EQUALITY (enabled by default), + COMPONENT_FACTORY_FUNCTION (enabled by default), + COMPONENT_FILE_CYCLOMATIC_COMPLEXITY (enabled by default), + COMPONENT_FILE_LINE_COUNT (enabled by default), + COMPONENT_INITIALIZER_WITH_SIDE_EFFECTS (enabled by default), + COMPONENT_WITH_MULTIPLE_FACTORY_METHODS (enabled by default), + COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS (enabled by default), + CONDITION_ALWAYS_FALSE (disabled by default), + CONDITION_ALWAYS_TRUE (disabled by default), + CREATE_INTENT_FROM_URI (enabled by default), + CROSS_SITE_SCRIPTING (enabled by default), + Cannot_star (enabled by default), + Codequery (enabled by default), + DANGLING_POINTER_DEREFERENCE (disabled by default), + DEADLOCK (enabled by default), + DEAD_STORE (enabled by default), + DEALLOCATE_STACK_VARIABLE (enabled by default), + DEALLOCATE_STATIC_MEMORY (enabled by default), + DEALLOCATION_MISMATCH (enabled by default), + DIVIDE_BY_ZERO (disabled by default), + DO_NOT_REPORT (enabled by default), + EMPTY_VECTOR_ACCESS (enabled by default), + ERADICATE_CONDITION_REDUNDANT (enabled by default), + ERADICATE_CONDITION_REDUNDANT_NONNULL (enabled by default), + ERADICATE_FIELD_NOT_INITIALIZED (enabled by default), + ERADICATE_FIELD_NOT_MUTABLE (enabled by default), + ERADICATE_FIELD_NOT_NULLABLE (enabled by default), + ERADICATE_FIELD_OVER_ANNOTATED (enabled by default), + ERADICATE_FIELD_VALUE_ABSENT (enabled by default), + ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION (enabled + by default), + ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION (enabled by + default), + ERADICATE_NULLABLE_DEREFERENCE (enabled by default), + ERADICATE_PARAMETER_NOT_NULLABLE (enabled by default), + ERADICATE_PARAMETER_VALUE_ABSENT (enabled by default), + ERADICATE_RETURN_NOT_NULLABLE (enabled by default), + ERADICATE_RETURN_OVER_ANNOTATED (enabled by default), + ERADICATE_RETURN_VALUE_NOT_PRESENT (enabled by default), + ERADICATE_VALUE_NOT_PRESENT (enabled by default), + EXPENSIVE_ALLOCATION_CALL (disabled by default), + EXPENSIVE_EXECUTION_CALL (disabled by default), + EXPENSIVE_EXECUTION_CALL_IN_COLD_START (disabled by default), + EXPENSIVE_IO_TIME_CALL (disabled by default), + EXPENSIVE_LOOP_INVARIANT_CALL (enabled by default), + EXPOSED_INSECURE_INTENT_HANDLING (enabled by default), + Failure_exe (enabled by default), + GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL + (disabled by default), + GRAPHQL_FIELD_ACCESS (enabled by default), + GUARDEDBY_VIOLATION (enabled by default), + INFERBO_ALLOC_IS_BIG (enabled by default), + INFERBO_ALLOC_IS_NEGATIVE (enabled by default), + INFERBO_ALLOC_IS_ZERO (enabled by default), + INFERBO_ALLOC_MAY_BE_BIG (enabled by default), + INFERBO_ALLOC_MAY_BE_NEGATIVE (enabled by default), + INFINITE_EXECUTION_TIME_CALL (disabled by default), + INHERENTLY_DANGEROUS_FUNCTION (enabled by default), + INSECURE_INTENT_HANDLING (enabled by default), + INTEGER_OVERFLOW_L1 (enabled by default), + INTEGER_OVERFLOW_L2 (enabled by default), + INTEGER_OVERFLOW_L5 (disabled by default), + INTEGER_OVERFLOW_R2 (enabled by default), + INTEGER_OVERFLOW_U5 (disabled by default), + INTERFACE_NOT_THREAD_SAFE (enabled by default), + INVARIANT_CALL (enabled by default), + IVAR_NOT_NULL_CHECKED (enabled by default), + Internal_error (enabled by default), + JAVASCRIPT_INJECTION (enabled by default), + LOCK_CONSISTENCY_VIOLATION (enabled by default), + LOGGING_PRIVATE_DATA (enabled by default), + Leak_after_array_abstraction (enabled by default), + Leak_in_footprint (enabled by default), + MEMORY_LEAK (enabled by default), + MISSING_REQUIRED_PROP (enabled by default), + MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE (enabled by default), + Missing_fld (enabled by default), + NULLSAFE_FIELD_NOT_NULLABLE (enabled by default), + NULLSAFE_NULLABLE_DEREFERENCE (enabled by default), + NULL_DEREFERENCE (enabled by default), + NULL_TEST_AFTER_DEREFERENCE (disabled by default), + PARAMETER_NOT_NULL_CHECKED (enabled by default), + PERFORMANCE_VARIATION (enabled by default), + POINTER_SIZE_MISMATCH (enabled by default), + PRECONDITION_NOT_FOUND (enabled by default), + PRECONDITION_NOT_MET (enabled by default), + PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default), + PURE_FUNCTION (enabled by default), + QUANDARY_TAINT_ERROR (enabled by default), + REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by default), + RESOURCE_LEAK (enabled by default), + RETAIN_CYCLE (enabled by default), + RETURN_EXPRESSION_REQUIRED (enabled by default), + RETURN_STATEMENT_MISSING (enabled by default), + RETURN_VALUE_IGNORED (disabled by default), + SHELL_INJECTION (enabled by default), + SHELL_INJECTION_RISK (enabled by default), + SKIP_FUNCTION (enabled by default), + SKIP_POINTER_DEREFERENCE (enabled by default), + SQL_INJECTION (enabled by default), + SQL_INJECTION_RISK (enabled by default), + STACK_VARIABLE_ADDRESS_ESCAPE (disabled by default), + STARVATION (enabled by default), + STATIC_INITIALIZATION_ORDER_FIASCO (enabled by default), + STRICT_MODE_VIOLATION (enabled by default), + Symexec_memory_error (enabled by default), + TAINTED_BUFFER_ACCESS (enabled by default), + TAINTED_MEMORY_ALLOCATION (enabled by default), + THREAD_SAFETY_VIOLATION (enabled by default), + TIME_COMPLEXITY_INCREASE_COLD_START (enabled by default), + UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION (disabled by + default), + UNINITIALIZED_VALUE (enabled by default), + UNREACHABLE_CODE (enabled by default), + UNSAFE_GUARDED_BY_ACCESS (enabled by default), + UNTRUSTED_BUFFER_ACCESS (disabled by default), + UNTRUSTED_DESERIALIZATION (enabled by default), + UNTRUSTED_DESERIALIZATION_RISK (enabled by default), + UNTRUSTED_ENVIRONMENT_CHANGE_RISK (enabled by default), + UNTRUSTED_FILE (enabled by default), + UNTRUSTED_FILE_RISK (enabled by default), + UNTRUSTED_HEAP_ALLOCATION (disabled by default), + UNTRUSTED_INTENT_CREATION (enabled by default), + UNTRUSTED_URL_RISK (enabled by default), + UNTRUSTED_VARIABLE_LENGTH_ARRAY (enabled by default), + USER_CONTROLLED_SQL_RISK (enabled by default), + USE_AFTER_DELETE (enabled by default), + USE_AFTER_FREE (enabled by default), + USE_AFTER_LIFETIME (enabled by default), + Unknown_proc (enabled by default), + VECTOR_INVALIDATION (enabled by default), + Wrong_argument_number (enabled by default), + ZERO_EXECUTION_TIME_CALL (disabled by default). - See also --report-issue-type. - (default: - ANALYSIS_STOPS,ARRAY_OUT_OF_BOUNDS_L1,ARRAY_OUT_OF_BOUNDS_L2,ARRAY_OUT_OF_BOUNDS_L3,BUFFER_OVERRUN_L4,BUFFER_OVERRUN_L5,BUFFER_OVERRUN_U5,CLASS_CAST_EXCEPTION,CONDITION_ALWAYS_FALSE,CONDITION_ALWAYS_TRUE,DANGLING_POINTER_DEREFERENCE,DIVIDE_BY_ZERO,EXPENSIVE_ALLOCATION_CALL,EXPENSIVE_EXECUTION_CALL,EXPENSIVE_EXECUTION_CALL_IN_COLD_START,EXPENSIVE_IO_TIME_CALL,GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL,INFINITE_EXECUTION_TIME_CALL,INTEGER_OVERFLOW_L5,INTEGER_OVERFLOW_U5,NULL_TEST_AFTER_DEREFERENCE,RETURN_VALUE_IGNORED,STACK_VARIABLE_ADDRESS_ESCAPE,UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION,UNTRUSTED_BUFFER_ACCESS,UNTRUSTED_HEAP_ALLOCATION,ZERO_EXECUTION_TIME_CALL) See also infer-report(1). --dump-duplicate-symbols diff --git a/infer/man/man1/infer-report.txt b/infer/man/man1/infer-report.txt index e74cac96f..1e2f15c3c 100644 --- a/infer/man/man1/infer-report.txt +++ b/infer/man/man1/infer-report.txt @@ -51,25 +51,167 @@ OPTIONS fine-grained filtering over which types of issue should be reported once the checkers have run. In particular, note that disabling issue types does not make the corresponding checker not - run. By default, the following issue types are disabled: - ANALYSIS_STOPS, ARRAY_OUT_OF_BOUNDS_L1, ARRAY_OUT_OF_BOUNDS_L2, - ARRAY_OUT_OF_BOUNDS_L3, BUFFER_OVERRUN_L4, BUFFER_OVERRUN_L5, - BUFFER_OVERRUN_U5, CLASS_CAST_EXCEPTION, CONDITION_ALWAYS_FALSE, - CONDITION_ALWAYS_TRUE, DANGLING_POINTER_DEREFERENCE, - DIVIDE_BY_ZERO, EXPENSIVE_ALLOCATION_CALL, - EXPENSIVE_EXECUTION_CALL, EXPENSIVE_EXECUTION_CALL_IN_COLD_START, - EXPENSIVE_IO_TIME_CALL, - GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL, - INFINITE_EXECUTION_TIME_CALL, INTEGER_OVERFLOW_L5, - INTEGER_OVERFLOW_U5, NULL_TEST_AFTER_DEREFERENCE, - RETURN_VALUE_IGNORED, STACK_VARIABLE_ADDRESS_ESCAPE, - UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION, - UNTRUSTED_BUFFER_ACCESS, UNTRUSTED_HEAP_ALLOCATION, - ZERO_EXECUTION_TIME_CALL. + run. Available issue types are as follows: + + ANALYSIS_STOPS (disabled by default), + ARRAY_OUT_OF_BOUNDS_L1 (disabled by default), + ARRAY_OUT_OF_BOUNDS_L2 (disabled by default), + ARRAY_OUT_OF_BOUNDS_L3 (disabled by default), + Abduction_case_not_implemented (enabled by default), + Array_of_pointsto (enabled by default), + Assert_failure (enabled by default), + BUFFER_OVERRUN_L1 (enabled by default), + BUFFER_OVERRUN_L2 (enabled by default), + BUFFER_OVERRUN_L3 (enabled by default), + BUFFER_OVERRUN_L4 (disabled by default), + BUFFER_OVERRUN_L5 (disabled by default), + BUFFER_OVERRUN_R2 (enabled by default), + BUFFER_OVERRUN_S2 (enabled by default), + BUFFER_OVERRUN_U5 (disabled by default), + Bad_footprint (enabled by default), + CHECKERS_ALLOCATES_MEMORY (enabled by default), + CHECKERS_ANNOTATION_REACHABILITY_ERROR (enabled by default), + CHECKERS_CALLS_EXPENSIVE_METHOD (enabled by default), + CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED (enabled by default), + CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default), + CHECKERS_IMMUTABLE_CAST (enabled by default), + CHECKERS_PRINTF_ARGS (enabled by default), + CLASS_CAST_EXCEPTION (disabled by default), + CLASS_LOAD (enabled by default), + COMPARING_FLOAT_FOR_EQUALITY (enabled by default), + COMPONENT_FACTORY_FUNCTION (enabled by default), + COMPONENT_FILE_CYCLOMATIC_COMPLEXITY (enabled by default), + COMPONENT_FILE_LINE_COUNT (enabled by default), + COMPONENT_INITIALIZER_WITH_SIDE_EFFECTS (enabled by default), + COMPONENT_WITH_MULTIPLE_FACTORY_METHODS (enabled by default), + COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS (enabled by default), + CONDITION_ALWAYS_FALSE (disabled by default), + CONDITION_ALWAYS_TRUE (disabled by default), + CREATE_INTENT_FROM_URI (enabled by default), + CROSS_SITE_SCRIPTING (enabled by default), + Cannot_star (enabled by default), + Codequery (enabled by default), + DANGLING_POINTER_DEREFERENCE (disabled by default), + DEADLOCK (enabled by default), + DEAD_STORE (enabled by default), + DEALLOCATE_STACK_VARIABLE (enabled by default), + DEALLOCATE_STATIC_MEMORY (enabled by default), + DEALLOCATION_MISMATCH (enabled by default), + DIVIDE_BY_ZERO (disabled by default), + DO_NOT_REPORT (enabled by default), + EMPTY_VECTOR_ACCESS (enabled by default), + ERADICATE_CONDITION_REDUNDANT (enabled by default), + ERADICATE_CONDITION_REDUNDANT_NONNULL (enabled by default), + ERADICATE_FIELD_NOT_INITIALIZED (enabled by default), + ERADICATE_FIELD_NOT_MUTABLE (enabled by default), + ERADICATE_FIELD_NOT_NULLABLE (enabled by default), + ERADICATE_FIELD_OVER_ANNOTATED (enabled by default), + ERADICATE_FIELD_VALUE_ABSENT (enabled by default), + ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION (enabled + by default), + ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION (enabled by + default), + ERADICATE_NULLABLE_DEREFERENCE (enabled by default), + ERADICATE_PARAMETER_NOT_NULLABLE (enabled by default), + ERADICATE_PARAMETER_VALUE_ABSENT (enabled by default), + ERADICATE_RETURN_NOT_NULLABLE (enabled by default), + ERADICATE_RETURN_OVER_ANNOTATED (enabled by default), + ERADICATE_RETURN_VALUE_NOT_PRESENT (enabled by default), + ERADICATE_VALUE_NOT_PRESENT (enabled by default), + EXPENSIVE_ALLOCATION_CALL (disabled by default), + EXPENSIVE_EXECUTION_CALL (disabled by default), + EXPENSIVE_EXECUTION_CALL_IN_COLD_START (disabled by default), + EXPENSIVE_IO_TIME_CALL (disabled by default), + EXPENSIVE_LOOP_INVARIANT_CALL (enabled by default), + EXPOSED_INSECURE_INTENT_HANDLING (enabled by default), + Failure_exe (enabled by default), + GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL + (disabled by default), + GRAPHQL_FIELD_ACCESS (enabled by default), + GUARDEDBY_VIOLATION (enabled by default), + INFERBO_ALLOC_IS_BIG (enabled by default), + INFERBO_ALLOC_IS_NEGATIVE (enabled by default), + INFERBO_ALLOC_IS_ZERO (enabled by default), + INFERBO_ALLOC_MAY_BE_BIG (enabled by default), + INFERBO_ALLOC_MAY_BE_NEGATIVE (enabled by default), + INFINITE_EXECUTION_TIME_CALL (disabled by default), + INHERENTLY_DANGEROUS_FUNCTION (enabled by default), + INSECURE_INTENT_HANDLING (enabled by default), + INTEGER_OVERFLOW_L1 (enabled by default), + INTEGER_OVERFLOW_L2 (enabled by default), + INTEGER_OVERFLOW_L5 (disabled by default), + INTEGER_OVERFLOW_R2 (enabled by default), + INTEGER_OVERFLOW_U5 (disabled by default), + INTERFACE_NOT_THREAD_SAFE (enabled by default), + INVARIANT_CALL (enabled by default), + IVAR_NOT_NULL_CHECKED (enabled by default), + Internal_error (enabled by default), + JAVASCRIPT_INJECTION (enabled by default), + LOCK_CONSISTENCY_VIOLATION (enabled by default), + LOGGING_PRIVATE_DATA (enabled by default), + Leak_after_array_abstraction (enabled by default), + Leak_in_footprint (enabled by default), + MEMORY_LEAK (enabled by default), + MISSING_REQUIRED_PROP (enabled by default), + MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE (enabled by default), + Missing_fld (enabled by default), + NULLSAFE_FIELD_NOT_NULLABLE (enabled by default), + NULLSAFE_NULLABLE_DEREFERENCE (enabled by default), + NULL_DEREFERENCE (enabled by default), + NULL_TEST_AFTER_DEREFERENCE (disabled by default), + PARAMETER_NOT_NULL_CHECKED (enabled by default), + PERFORMANCE_VARIATION (enabled by default), + POINTER_SIZE_MISMATCH (enabled by default), + PRECONDITION_NOT_FOUND (enabled by default), + PRECONDITION_NOT_MET (enabled by default), + PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default), + PURE_FUNCTION (enabled by default), + QUANDARY_TAINT_ERROR (enabled by default), + REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by default), + RESOURCE_LEAK (enabled by default), + RETAIN_CYCLE (enabled by default), + RETURN_EXPRESSION_REQUIRED (enabled by default), + RETURN_STATEMENT_MISSING (enabled by default), + RETURN_VALUE_IGNORED (disabled by default), + SHELL_INJECTION (enabled by default), + SHELL_INJECTION_RISK (enabled by default), + SKIP_FUNCTION (enabled by default), + SKIP_POINTER_DEREFERENCE (enabled by default), + SQL_INJECTION (enabled by default), + SQL_INJECTION_RISK (enabled by default), + STACK_VARIABLE_ADDRESS_ESCAPE (disabled by default), + STARVATION (enabled by default), + STATIC_INITIALIZATION_ORDER_FIASCO (enabled by default), + STRICT_MODE_VIOLATION (enabled by default), + Symexec_memory_error (enabled by default), + TAINTED_BUFFER_ACCESS (enabled by default), + TAINTED_MEMORY_ALLOCATION (enabled by default), + THREAD_SAFETY_VIOLATION (enabled by default), + TIME_COMPLEXITY_INCREASE_COLD_START (enabled by default), + UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION (disabled by + default), + UNINITIALIZED_VALUE (enabled by default), + UNREACHABLE_CODE (enabled by default), + UNSAFE_GUARDED_BY_ACCESS (enabled by default), + UNTRUSTED_BUFFER_ACCESS (disabled by default), + UNTRUSTED_DESERIALIZATION (enabled by default), + UNTRUSTED_DESERIALIZATION_RISK (enabled by default), + UNTRUSTED_ENVIRONMENT_CHANGE_RISK (enabled by default), + UNTRUSTED_FILE (enabled by default), + UNTRUSTED_FILE_RISK (enabled by default), + UNTRUSTED_HEAP_ALLOCATION (disabled by default), + UNTRUSTED_INTENT_CREATION (enabled by default), + UNTRUSTED_URL_RISK (enabled by default), + UNTRUSTED_VARIABLE_LENGTH_ARRAY (enabled by default), + USER_CONTROLLED_SQL_RISK (enabled by default), + USE_AFTER_DELETE (enabled by default), + USE_AFTER_FREE (enabled by default), + USE_AFTER_LIFETIME (enabled by default), + Unknown_proc (enabled by default), + VECTOR_INVALIDATION (enabled by default), + Wrong_argument_number (enabled by default), + ZERO_EXECUTION_TIME_CALL (disabled by default). - See also --report-issue-type. - (default: - ANALYSIS_STOPS,ARRAY_OUT_OF_BOUNDS_L1,ARRAY_OUT_OF_BOUNDS_L2,ARRAY_OUT_OF_BOUNDS_L3,BUFFER_OVERRUN_L4,BUFFER_OVERRUN_L5,BUFFER_OVERRUN_U5,CLASS_CAST_EXCEPTION,CONDITION_ALWAYS_FALSE,CONDITION_ALWAYS_TRUE,DANGLING_POINTER_DEREFERENCE,DIVIDE_BY_ZERO,EXPENSIVE_ALLOCATION_CALL,EXPENSIVE_EXECUTION_CALL,EXPENSIVE_EXECUTION_CALL_IN_COLD_START,EXPENSIVE_IO_TIME_CALL,GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL,INFINITE_EXECUTION_TIME_CALL,INTEGER_OVERFLOW_L5,INTEGER_OVERFLOW_U5,NULL_TEST_AFTER_DEREFERENCE,RETURN_VALUE_IGNORED,STACK_VARIABLE_ADDRESS_ESCAPE,UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION,UNTRUSTED_BUFFER_ACCESS,UNTRUSTED_HEAP_ALLOCATION,ZERO_EXECUTION_TIME_CALL) --enable-issue-type +issue_type Show reports coming from this type of issue. By default, all issue diff --git a/infer/man/man1/infer.txt b/infer/man/man1/infer.txt index 360cdc398..598c27ed5 100644 --- a/infer/man/man1/infer.txt +++ b/infer/man/man1/infer.txt @@ -302,25 +302,167 @@ OPTIONS fine-grained filtering over which types of issue should be reported once the checkers have run. In particular, note that disabling issue types does not make the corresponding checker not - run. By default, the following issue types are disabled: - ANALYSIS_STOPS, ARRAY_OUT_OF_BOUNDS_L1, ARRAY_OUT_OF_BOUNDS_L2, - ARRAY_OUT_OF_BOUNDS_L3, BUFFER_OVERRUN_L4, BUFFER_OVERRUN_L5, - BUFFER_OVERRUN_U5, CLASS_CAST_EXCEPTION, CONDITION_ALWAYS_FALSE, - CONDITION_ALWAYS_TRUE, DANGLING_POINTER_DEREFERENCE, - DIVIDE_BY_ZERO, EXPENSIVE_ALLOCATION_CALL, - EXPENSIVE_EXECUTION_CALL, EXPENSIVE_EXECUTION_CALL_IN_COLD_START, - EXPENSIVE_IO_TIME_CALL, - GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL, - INFINITE_EXECUTION_TIME_CALL, INTEGER_OVERFLOW_L5, - INTEGER_OVERFLOW_U5, NULL_TEST_AFTER_DEREFERENCE, - RETURN_VALUE_IGNORED, STACK_VARIABLE_ADDRESS_ESCAPE, - UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION, - UNTRUSTED_BUFFER_ACCESS, UNTRUSTED_HEAP_ALLOCATION, - ZERO_EXECUTION_TIME_CALL. + run. Available issue types are as follows: + + ANALYSIS_STOPS (disabled by default), + ARRAY_OUT_OF_BOUNDS_L1 (disabled by default), + ARRAY_OUT_OF_BOUNDS_L2 (disabled by default), + ARRAY_OUT_OF_BOUNDS_L3 (disabled by default), + Abduction_case_not_implemented (enabled by default), + Array_of_pointsto (enabled by default), + Assert_failure (enabled by default), + BUFFER_OVERRUN_L1 (enabled by default), + BUFFER_OVERRUN_L2 (enabled by default), + BUFFER_OVERRUN_L3 (enabled by default), + BUFFER_OVERRUN_L4 (disabled by default), + BUFFER_OVERRUN_L5 (disabled by default), + BUFFER_OVERRUN_R2 (enabled by default), + BUFFER_OVERRUN_S2 (enabled by default), + BUFFER_OVERRUN_U5 (disabled by default), + Bad_footprint (enabled by default), + CHECKERS_ALLOCATES_MEMORY (enabled by default), + CHECKERS_ANNOTATION_REACHABILITY_ERROR (enabled by default), + CHECKERS_CALLS_EXPENSIVE_METHOD (enabled by default), + CHECKERS_EXPENSIVE_OVERRIDES_UNANNOTATED (enabled by default), + CHECKERS_FRAGMENT_RETAINS_VIEW (enabled by default), + CHECKERS_IMMUTABLE_CAST (enabled by default), + CHECKERS_PRINTF_ARGS (enabled by default), + CLASS_CAST_EXCEPTION (disabled by default), + CLASS_LOAD (enabled by default), + COMPARING_FLOAT_FOR_EQUALITY (enabled by default), + COMPONENT_FACTORY_FUNCTION (enabled by default), + COMPONENT_FILE_CYCLOMATIC_COMPLEXITY (enabled by default), + COMPONENT_FILE_LINE_COUNT (enabled by default), + COMPONENT_INITIALIZER_WITH_SIDE_EFFECTS (enabled by default), + COMPONENT_WITH_MULTIPLE_FACTORY_METHODS (enabled by default), + COMPONENT_WITH_UNCONVENTIONAL_SUPERCLASS (enabled by default), + CONDITION_ALWAYS_FALSE (disabled by default), + CONDITION_ALWAYS_TRUE (disabled by default), + CREATE_INTENT_FROM_URI (enabled by default), + CROSS_SITE_SCRIPTING (enabled by default), + Cannot_star (enabled by default), + Codequery (enabled by default), + DANGLING_POINTER_DEREFERENCE (disabled by default), + DEADLOCK (enabled by default), + DEAD_STORE (enabled by default), + DEALLOCATE_STACK_VARIABLE (enabled by default), + DEALLOCATE_STATIC_MEMORY (enabled by default), + DEALLOCATION_MISMATCH (enabled by default), + DIVIDE_BY_ZERO (disabled by default), + DO_NOT_REPORT (enabled by default), + EMPTY_VECTOR_ACCESS (enabled by default), + ERADICATE_CONDITION_REDUNDANT (enabled by default), + ERADICATE_CONDITION_REDUNDANT_NONNULL (enabled by default), + ERADICATE_FIELD_NOT_INITIALIZED (enabled by default), + ERADICATE_FIELD_NOT_MUTABLE (enabled by default), + ERADICATE_FIELD_NOT_NULLABLE (enabled by default), + ERADICATE_FIELD_OVER_ANNOTATED (enabled by default), + ERADICATE_FIELD_VALUE_ABSENT (enabled by default), + ERADICATE_INCONSISTENT_SUBCLASS_PARAMETER_ANNOTATION (enabled + by default), + ERADICATE_INCONSISTENT_SUBCLASS_RETURN_ANNOTATION (enabled by + default), + ERADICATE_NULLABLE_DEREFERENCE (enabled by default), + ERADICATE_PARAMETER_NOT_NULLABLE (enabled by default), + ERADICATE_PARAMETER_VALUE_ABSENT (enabled by default), + ERADICATE_RETURN_NOT_NULLABLE (enabled by default), + ERADICATE_RETURN_OVER_ANNOTATED (enabled by default), + ERADICATE_RETURN_VALUE_NOT_PRESENT (enabled by default), + ERADICATE_VALUE_NOT_PRESENT (enabled by default), + EXPENSIVE_ALLOCATION_CALL (disabled by default), + EXPENSIVE_EXECUTION_CALL (disabled by default), + EXPENSIVE_EXECUTION_CALL_IN_COLD_START (disabled by default), + EXPENSIVE_IO_TIME_CALL (disabled by default), + EXPENSIVE_LOOP_INVARIANT_CALL (enabled by default), + EXPOSED_INSECURE_INTENT_HANDLING (enabled by default), + Failure_exe (enabled by default), + GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL + (disabled by default), + GRAPHQL_FIELD_ACCESS (enabled by default), + GUARDEDBY_VIOLATION (enabled by default), + INFERBO_ALLOC_IS_BIG (enabled by default), + INFERBO_ALLOC_IS_NEGATIVE (enabled by default), + INFERBO_ALLOC_IS_ZERO (enabled by default), + INFERBO_ALLOC_MAY_BE_BIG (enabled by default), + INFERBO_ALLOC_MAY_BE_NEGATIVE (enabled by default), + INFINITE_EXECUTION_TIME_CALL (disabled by default), + INHERENTLY_DANGEROUS_FUNCTION (enabled by default), + INSECURE_INTENT_HANDLING (enabled by default), + INTEGER_OVERFLOW_L1 (enabled by default), + INTEGER_OVERFLOW_L2 (enabled by default), + INTEGER_OVERFLOW_L5 (disabled by default), + INTEGER_OVERFLOW_R2 (enabled by default), + INTEGER_OVERFLOW_U5 (disabled by default), + INTERFACE_NOT_THREAD_SAFE (enabled by default), + INVARIANT_CALL (enabled by default), + IVAR_NOT_NULL_CHECKED (enabled by default), + Internal_error (enabled by default), + JAVASCRIPT_INJECTION (enabled by default), + LOCK_CONSISTENCY_VIOLATION (enabled by default), + LOGGING_PRIVATE_DATA (enabled by default), + Leak_after_array_abstraction (enabled by default), + Leak_in_footprint (enabled by default), + MEMORY_LEAK (enabled by default), + MISSING_REQUIRED_PROP (enabled by default), + MUTABLE_LOCAL_VARIABLE_IN_COMPONENT_FILE (enabled by default), + Missing_fld (enabled by default), + NULLSAFE_FIELD_NOT_NULLABLE (enabled by default), + NULLSAFE_NULLABLE_DEREFERENCE (enabled by default), + NULL_DEREFERENCE (enabled by default), + NULL_TEST_AFTER_DEREFERENCE (disabled by default), + PARAMETER_NOT_NULL_CHECKED (enabled by default), + PERFORMANCE_VARIATION (enabled by default), + POINTER_SIZE_MISMATCH (enabled by default), + PRECONDITION_NOT_FOUND (enabled by default), + PRECONDITION_NOT_MET (enabled by default), + PREMATURE_NIL_TERMINATION_ARGUMENT (enabled by default), + PURE_FUNCTION (enabled by default), + QUANDARY_TAINT_ERROR (enabled by default), + REGISTERED_OBSERVER_BEING_DEALLOCATED (enabled by default), + RESOURCE_LEAK (enabled by default), + RETAIN_CYCLE (enabled by default), + RETURN_EXPRESSION_REQUIRED (enabled by default), + RETURN_STATEMENT_MISSING (enabled by default), + RETURN_VALUE_IGNORED (disabled by default), + SHELL_INJECTION (enabled by default), + SHELL_INJECTION_RISK (enabled by default), + SKIP_FUNCTION (enabled by default), + SKIP_POINTER_DEREFERENCE (enabled by default), + SQL_INJECTION (enabled by default), + SQL_INJECTION_RISK (enabled by default), + STACK_VARIABLE_ADDRESS_ESCAPE (disabled by default), + STARVATION (enabled by default), + STATIC_INITIALIZATION_ORDER_FIASCO (enabled by default), + STRICT_MODE_VIOLATION (enabled by default), + Symexec_memory_error (enabled by default), + TAINTED_BUFFER_ACCESS (enabled by default), + TAINTED_MEMORY_ALLOCATION (enabled by default), + THREAD_SAFETY_VIOLATION (enabled by default), + TIME_COMPLEXITY_INCREASE_COLD_START (enabled by default), + UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION (disabled by + default), + UNINITIALIZED_VALUE (enabled by default), + UNREACHABLE_CODE (enabled by default), + UNSAFE_GUARDED_BY_ACCESS (enabled by default), + UNTRUSTED_BUFFER_ACCESS (disabled by default), + UNTRUSTED_DESERIALIZATION (enabled by default), + UNTRUSTED_DESERIALIZATION_RISK (enabled by default), + UNTRUSTED_ENVIRONMENT_CHANGE_RISK (enabled by default), + UNTRUSTED_FILE (enabled by default), + UNTRUSTED_FILE_RISK (enabled by default), + UNTRUSTED_HEAP_ALLOCATION (disabled by default), + UNTRUSTED_INTENT_CREATION (enabled by default), + UNTRUSTED_URL_RISK (enabled by default), + UNTRUSTED_VARIABLE_LENGTH_ARRAY (enabled by default), + USER_CONTROLLED_SQL_RISK (enabled by default), + USE_AFTER_DELETE (enabled by default), + USE_AFTER_FREE (enabled by default), + USE_AFTER_LIFETIME (enabled by default), + Unknown_proc (enabled by default), + VECTOR_INVALIDATION (enabled by default), + Wrong_argument_number (enabled by default), + ZERO_EXECUTION_TIME_CALL (disabled by default). - See also --report-issue-type. - (default: - ANALYSIS_STOPS,ARRAY_OUT_OF_BOUNDS_L1,ARRAY_OUT_OF_BOUNDS_L2,ARRAY_OUT_OF_BOUNDS_L3,BUFFER_OVERRUN_L4,BUFFER_OVERRUN_L5,BUFFER_OVERRUN_U5,CLASS_CAST_EXCEPTION,CONDITION_ALWAYS_FALSE,CONDITION_ALWAYS_TRUE,DANGLING_POINTER_DEREFERENCE,DIVIDE_BY_ZERO,EXPENSIVE_ALLOCATION_CALL,EXPENSIVE_EXECUTION_CALL,EXPENSIVE_EXECUTION_CALL_IN_COLD_START,EXPENSIVE_IO_TIME_CALL,GLOBAL_VARIABLE_INITIALIZED_WITH_FUNCTION_OR_METHOD_CALL,INFINITE_EXECUTION_TIME_CALL,INTEGER_OVERFLOW_L5,INTEGER_OVERFLOW_U5,NULL_TEST_AFTER_DEREFERENCE,RETURN_VALUE_IGNORED,STACK_VARIABLE_ADDRESS_ESCAPE,UNARY_MINUS_APPLIED_TO_UNSIGNED_EXPRESSION,UNTRUSTED_BUFFER_ACCESS,UNTRUSTED_HEAP_ALLOCATION,ZERO_EXECUTION_TIME_CALL) See also infer-report(1). --dump-duplicate-symbols diff --git a/infer/src/base/Config.ml b/infer/src/base/Config.ml index cfd003617..86a3dedb2 100644 --- a/infer/src/base/Config.ml +++ b/infer/src/base/Config.ml @@ -1233,26 +1233,35 @@ and () = let issue = IssueType.from_string issue_id in IssueType.set_enabled issue b ; issue_id ) ?default ~meta:"issue_type" + ~default_to_string:(fun _ -> "") ~in_help:InferCommand.[(Report, manual_generic)] doc in () in + let all_issues = IssueType.all_issues () in let disabled_issues_ids = - IssueType.all_issues () - |> List.filter_map ~f:(fun issue -> - if not issue.IssueType.enabled then Some issue.IssueType.unique_id else None ) + List.filter_map all_issues ~f:(fun issue -> + Option.some_if (not issue.IssueType.enabled) issue.IssueType.unique_id ) + in + let pp_issue fmt issue = + let pp_enabled fmt enabled = + if enabled then F.pp_print_string fmt "enabled by default" + else F.pp_print_string fmt "disabled by default" + in + F.fprintf fmt "%s (%a)" issue.IssueType.unique_id pp_enabled issue.IssueType.enabled in mk false ~default:disabled_issues_ids ~long:"disable-issue-type" ~deprecated:["disable_checks"; "-disable-checks"] - (Printf.sprintf + (F.asprintf "Do not show reports coming from this type of issue. Each checker can report a range of \ issue types. This option provides fine-grained filtering over which types of issue should \ be reported once the checkers have run. In particular, note that disabling issue types \ does not make the corresponding checker not run.\n\ - \ By default, the following issue types are disabled: %s.\n\n\ - \ See also $(b,--report-issue-type).\n" - (String.concat ~sep:", " disabled_issues_ids)) ; + Available issue types are as follows:\n\ + \ @[%a@].\n" + (Pp.seq ~print_env:Pp.text_break ~sep:"," pp_issue) + all_issues) ; mk true ~long:"enable-issue-type" ~deprecated:["enable_checks"; "-enable-checks"] "Show reports coming from this type of issue. By default, all issue types are enabled except \