Flawfinder version 2.0.10, (C) 2001-2019 David A. Wheeler. Number of rules (primarily dangerous function names) in C/C++ ruleset: 223 Examining data/catch2-2.13.3/examples/000-CatchMain.cpp Examining data/catch2-2.13.3/examples/010-TestCase.cpp Examining data/catch2-2.13.3/examples/020-TestCase-1.cpp Examining data/catch2-2.13.3/examples/020-TestCase-2.cpp Examining data/catch2-2.13.3/examples/030-Asn-Require-Check.cpp Examining data/catch2-2.13.3/examples/100-Fix-Section.cpp Examining data/catch2-2.13.3/examples/110-Fix-ClassFixture.cpp Examining data/catch2-2.13.3/examples/120-Bdd-ScenarioGivenWhenThen.cpp Examining data/catch2-2.13.3/examples/200-Rpt-CatchMain.cpp Examining data/catch2-2.13.3/examples/207-Rpt-TeamCityReporter.cpp Examining data/catch2-2.13.3/examples/210-Evt-EventListeners.cpp Examining data/catch2-2.13.3/examples/231-Cfg-OutputStreams.cpp Examining data/catch2-2.13.3/examples/300-Gen-OwnGenerator.cpp Examining data/catch2-2.13.3/examples/301-Gen-MapTypeConversion.cpp Examining data/catch2-2.13.3/examples/302-Gen-Table.cpp Examining data/catch2-2.13.3/examples/310-Gen-VariablesInGenerators.cpp Examining data/catch2-2.13.3/examples/311-Gen-CustomCapture.cpp Examining data/catch2-2.13.3/include/catch.hpp Examining data/catch2-2.13.3/include/catch_with_main.hpp Examining data/catch2-2.13.3/include/external/clara.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_benchmark.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_benchmarking_all.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_chronometer.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_clock.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_constructor.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_environment.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_estimate.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_execution_plan.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_optimizer.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_outlier_classification.hpp Examining data/catch2-2.13.3/include/internal/benchmark/catch_sample_analysis.hpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_analyse.hpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_benchmark_function.hpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_complete_invoke.hpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_estimate_clock.hpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_measure.hpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_repeat.hpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_run_for_at_least.hpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_stats.cpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_stats.hpp Examining data/catch2-2.13.3/include/internal/benchmark/detail/catch_timing.hpp Examining data/catch2-2.13.3/include/internal/catch_approx.cpp Examining data/catch2-2.13.3/include/internal/catch_approx.h Examining data/catch2-2.13.3/include/internal/catch_assertionhandler.cpp Examining data/catch2-2.13.3/include/internal/catch_assertionhandler.h Examining data/catch2-2.13.3/include/internal/catch_assertioninfo.h Examining data/catch2-2.13.3/include/internal/catch_assertionresult.cpp Examining data/catch2-2.13.3/include/internal/catch_assertionresult.h Examining data/catch2-2.13.3/include/internal/catch_capture.hpp Examining data/catch2-2.13.3/include/internal/catch_capture_matchers.cpp Examining data/catch2-2.13.3/include/internal/catch_capture_matchers.h Examining data/catch2-2.13.3/include/internal/catch_clara.h Examining data/catch2-2.13.3/include/internal/catch_commandline.cpp Examining data/catch2-2.13.3/include/internal/catch_commandline.h Examining data/catch2-2.13.3/include/internal/catch_common.cpp Examining data/catch2-2.13.3/include/internal/catch_common.h Examining data/catch2-2.13.3/include/internal/catch_compiler_capabilities.h Examining data/catch2-2.13.3/include/internal/catch_config.cpp Examining data/catch2-2.13.3/include/internal/catch_config.hpp Examining data/catch2-2.13.3/include/internal/catch_config_uncaught_exceptions.hpp Examining data/catch2-2.13.3/include/internal/catch_console_colour.cpp Examining data/catch2-2.13.3/include/internal/catch_console_colour.h Examining data/catch2-2.13.3/include/internal/catch_context.cpp Examining data/catch2-2.13.3/include/internal/catch_context.h Examining data/catch2-2.13.3/include/internal/catch_debug_console.cpp Examining data/catch2-2.13.3/include/internal/catch_debug_console.h Examining data/catch2-2.13.3/include/internal/catch_debugger.cpp Examining data/catch2-2.13.3/include/internal/catch_debugger.h Examining data/catch2-2.13.3/include/internal/catch_decomposer.cpp Examining data/catch2-2.13.3/include/internal/catch_decomposer.h Examining data/catch2-2.13.3/include/internal/catch_default_main.hpp Examining data/catch2-2.13.3/include/internal/catch_enforce.cpp Examining data/catch2-2.13.3/include/internal/catch_enforce.h Examining data/catch2-2.13.3/include/internal/catch_enum_values_registry.cpp Examining data/catch2-2.13.3/include/internal/catch_enum_values_registry.h Examining data/catch2-2.13.3/include/internal/catch_errno_guard.cpp Examining data/catch2-2.13.3/include/internal/catch_errno_guard.h Examining data/catch2-2.13.3/include/internal/catch_exception_translator_registry.cpp Examining data/catch2-2.13.3/include/internal/catch_exception_translator_registry.h Examining data/catch2-2.13.3/include/internal/catch_external_interfaces.h Examining data/catch2-2.13.3/include/internal/catch_fatal_condition.cpp Examining data/catch2-2.13.3/include/internal/catch_fatal_condition.h Examining data/catch2-2.13.3/include/internal/catch_generators.cpp Examining data/catch2-2.13.3/include/internal/catch_generators.hpp Examining data/catch2-2.13.3/include/internal/catch_generators_generic.hpp Examining data/catch2-2.13.3/include/internal/catch_generators_specific.hpp Examining data/catch2-2.13.3/include/internal/catch_impl.hpp Examining data/catch2-2.13.3/include/internal/catch_interfaces_capture.cpp Examining data/catch2-2.13.3/include/internal/catch_interfaces_capture.h Examining data/catch2-2.13.3/include/internal/catch_interfaces_config.cpp Examining data/catch2-2.13.3/include/internal/catch_interfaces_config.h Examining data/catch2-2.13.3/include/internal/catch_interfaces_enum_values_registry.h Examining data/catch2-2.13.3/include/internal/catch_interfaces_exception.cpp Examining data/catch2-2.13.3/include/internal/catch_interfaces_exception.h Examining data/catch2-2.13.3/include/internal/catch_interfaces_generatortracker.h Examining data/catch2-2.13.3/include/internal/catch_interfaces_registry_hub.cpp Examining data/catch2-2.13.3/include/internal/catch_interfaces_registry_hub.h Examining data/catch2-2.13.3/include/internal/catch_interfaces_reporter.cpp Examining data/catch2-2.13.3/include/internal/catch_interfaces_reporter.h Examining data/catch2-2.13.3/include/internal/catch_interfaces_runner.cpp Examining data/catch2-2.13.3/include/internal/catch_interfaces_runner.h Examining data/catch2-2.13.3/include/internal/catch_interfaces_tag_alias_registry.h Examining data/catch2-2.13.3/include/internal/catch_interfaces_testcase.cpp Examining data/catch2-2.13.3/include/internal/catch_interfaces_testcase.h Examining data/catch2-2.13.3/include/internal/catch_leak_detector.cpp Examining data/catch2-2.13.3/include/internal/catch_leak_detector.h Examining data/catch2-2.13.3/include/internal/catch_list.cpp Examining data/catch2-2.13.3/include/internal/catch_list.h Examining data/catch2-2.13.3/include/internal/catch_matchers.cpp Examining data/catch2-2.13.3/include/internal/catch_matchers.h Examining data/catch2-2.13.3/include/internal/catch_matchers_exception.cpp Examining data/catch2-2.13.3/include/internal/catch_matchers_exception.hpp Examining data/catch2-2.13.3/include/internal/catch_matchers_floating.cpp Examining data/catch2-2.13.3/include/internal/catch_matchers_floating.h Examining data/catch2-2.13.3/include/internal/catch_matchers_generic.cpp Examining data/catch2-2.13.3/include/internal/catch_matchers_generic.hpp Examining data/catch2-2.13.3/include/internal/catch_matchers_string.cpp Examining data/catch2-2.13.3/include/internal/catch_matchers_string.h Examining data/catch2-2.13.3/include/internal/catch_matchers_vector.h Examining data/catch2-2.13.3/include/internal/catch_message.cpp Examining data/catch2-2.13.3/include/internal/catch_message.h Examining data/catch2-2.13.3/include/internal/catch_meta.hpp Examining data/catch2-2.13.3/include/internal/catch_objc.hpp Examining data/catch2-2.13.3/include/internal/catch_objc_arc.hpp Examining data/catch2-2.13.3/include/internal/catch_option.hpp Examining data/catch2-2.13.3/include/internal/catch_output_redirect.cpp Examining data/catch2-2.13.3/include/internal/catch_output_redirect.h Examining data/catch2-2.13.3/include/internal/catch_platform.h Examining data/catch2-2.13.3/include/internal/catch_polyfills.cpp Examining data/catch2-2.13.3/include/internal/catch_polyfills.hpp Examining data/catch2-2.13.3/include/internal/catch_preprocessor.hpp Examining data/catch2-2.13.3/include/internal/catch_random_number_generator.cpp Examining data/catch2-2.13.3/include/internal/catch_random_number_generator.h Examining data/catch2-2.13.3/include/internal/catch_reenable_warnings.h Examining data/catch2-2.13.3/include/internal/catch_registry_hub.cpp Examining data/catch2-2.13.3/include/internal/catch_reporter_registrars.hpp Examining data/catch2-2.13.3/include/internal/catch_reporter_registry.cpp Examining data/catch2-2.13.3/include/internal/catch_reporter_registry.h Examining data/catch2-2.13.3/include/internal/catch_result_type.cpp Examining data/catch2-2.13.3/include/internal/catch_result_type.h Examining data/catch2-2.13.3/include/internal/catch_run_context.cpp Examining data/catch2-2.13.3/include/internal/catch_run_context.h Examining data/catch2-2.13.3/include/internal/catch_section.cpp Examining data/catch2-2.13.3/include/internal/catch_section.h Examining data/catch2-2.13.3/include/internal/catch_section_info.cpp Examining data/catch2-2.13.3/include/internal/catch_section_info.h Examining data/catch2-2.13.3/include/internal/catch_session.cpp Examining data/catch2-2.13.3/include/internal/catch_session.h Examining data/catch2-2.13.3/include/internal/catch_singletons.cpp Examining data/catch2-2.13.3/include/internal/catch_singletons.hpp Examining data/catch2-2.13.3/include/internal/catch_startup_exception_registry.cpp Examining data/catch2-2.13.3/include/internal/catch_startup_exception_registry.h Examining data/catch2-2.13.3/include/internal/catch_stream.cpp Examining data/catch2-2.13.3/include/internal/catch_stream.h Examining data/catch2-2.13.3/include/internal/catch_string_manip.cpp Examining data/catch2-2.13.3/include/internal/catch_string_manip.h Examining data/catch2-2.13.3/include/internal/catch_stringref.cpp Examining data/catch2-2.13.3/include/internal/catch_stringref.h Examining data/catch2-2.13.3/include/internal/catch_suppress_warnings.h Examining data/catch2-2.13.3/include/internal/catch_tag_alias.cpp Examining data/catch2-2.13.3/include/internal/catch_tag_alias.h Examining data/catch2-2.13.3/include/internal/catch_tag_alias_autoregistrar.cpp Examining data/catch2-2.13.3/include/internal/catch_tag_alias_autoregistrar.h Examining data/catch2-2.13.3/include/internal/catch_tag_alias_registry.cpp Examining data/catch2-2.13.3/include/internal/catch_tag_alias_registry.h Examining data/catch2-2.13.3/include/internal/catch_test_case_info.cpp Examining data/catch2-2.13.3/include/internal/catch_test_case_info.h Examining data/catch2-2.13.3/include/internal/catch_test_case_registry_impl.cpp Examining data/catch2-2.13.3/include/internal/catch_test_case_registry_impl.h Examining data/catch2-2.13.3/include/internal/catch_test_case_tracker.cpp Examining data/catch2-2.13.3/include/internal/catch_test_case_tracker.h Examining data/catch2-2.13.3/include/internal/catch_test_registry.cpp Examining data/catch2-2.13.3/include/internal/catch_test_registry.h Examining data/catch2-2.13.3/include/internal/catch_test_spec.cpp Examining data/catch2-2.13.3/include/internal/catch_test_spec.h Examining data/catch2-2.13.3/include/internal/catch_test_spec_parser.cpp Examining data/catch2-2.13.3/include/internal/catch_test_spec_parser.h Examining data/catch2-2.13.3/include/internal/catch_text.h Examining data/catch2-2.13.3/include/internal/catch_timer.cpp Examining data/catch2-2.13.3/include/internal/catch_timer.h Examining data/catch2-2.13.3/include/internal/catch_to_string.hpp Examining data/catch2-2.13.3/include/internal/catch_tostring.cpp Examining data/catch2-2.13.3/include/internal/catch_tostring.h Examining data/catch2-2.13.3/include/internal/catch_totals.cpp Examining data/catch2-2.13.3/include/internal/catch_totals.h Examining data/catch2-2.13.3/include/internal/catch_uncaught_exceptions.cpp Examining data/catch2-2.13.3/include/internal/catch_uncaught_exceptions.h Examining data/catch2-2.13.3/include/internal/catch_user_interfaces.h Examining data/catch2-2.13.3/include/internal/catch_version.cpp Examining data/catch2-2.13.3/include/internal/catch_version.h Examining data/catch2-2.13.3/include/internal/catch_wildcard_pattern.cpp Examining data/catch2-2.13.3/include/internal/catch_wildcard_pattern.h Examining data/catch2-2.13.3/include/internal/catch_windows_h_proxy.h Examining data/catch2-2.13.3/include/internal/catch_xmlwriter.cpp Examining data/catch2-2.13.3/include/internal/catch_xmlwriter.h Examining data/catch2-2.13.3/include/reporters/catch_reporter_automake.hpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_bases.cpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_bases.hpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_compact.cpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_compact.h Examining data/catch2-2.13.3/include/reporters/catch_reporter_console.cpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_console.h Examining data/catch2-2.13.3/include/reporters/catch_reporter_junit.cpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_junit.h Examining data/catch2-2.13.3/include/reporters/catch_reporter_listening.cpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_listening.h Examining data/catch2-2.13.3/include/reporters/catch_reporter_sonarqube.hpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_tap.hpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_teamcity.hpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_xml.cpp Examining data/catch2-2.13.3/include/reporters/catch_reporter_xml.h Examining data/catch2-2.13.3/misc/coverage-helper.cpp Examining data/catch2-2.13.3/projects/ExtraTests/X01-PrefixedMacros.cpp Examining data/catch2-2.13.3/projects/ExtraTests/X02-DisabledMacros.cpp Examining data/catch2-2.13.3/projects/ExtraTests/X03-DisabledExceptions-DefaultHandler.cpp Examining data/catch2-2.13.3/projects/ExtraTests/X04-DisabledExceptions-CustomHandler.cpp Examining data/catch2-2.13.3/projects/ExtraTests/X10-FallbackStringifier.cpp Examining data/catch2-2.13.3/projects/ExtraTests/X11-DisableStringification.cpp Examining data/catch2-2.13.3/projects/ExtraTests/X12-CustomDebugBreakMacro.cpp Examining data/catch2-2.13.3/projects/ExtraTests/X20-BenchmarkingMacros.cpp Examining data/catch2-2.13.3/projects/ExtraTests/X90-WindowsHeaderInclusion.cpp Examining data/catch2-2.13.3/projects/SelfTest/CompileTimePerfTests/10.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/CompileTimePerfTests/100.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/CompileTimePerfTests/All.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/CmdLine.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/Details.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/InternalBenchmark.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/PartTracker.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/RandomNumberGeneration.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/String.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/StringManip.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/Tag.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/ToString.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/Xml.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp Examining data/catch2-2.13.3/projects/SelfTest/SurrogateCpps/catch_debugger.cpp Examining data/catch2-2.13.3/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp Examining data/catch2-2.13.3/projects/SelfTest/SurrogateCpps/catch_option.cpp Examining data/catch2-2.13.3/projects/SelfTest/SurrogateCpps/catch_stream.cpp Examining data/catch2-2.13.3/projects/SelfTest/SurrogateCpps/catch_test_case_tracker.cpp Examining data/catch2-2.13.3/projects/SelfTest/SurrogateCpps/catch_test_spec.cpp Examining data/catch2-2.13.3/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp Examining data/catch2-2.13.3/projects/SelfTest/TestMain.cpp Examining data/catch2-2.13.3/projects/SelfTest/TimingTests/Sleep.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Approx.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/BDD.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Benchmark.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Class.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Compilation.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Condition.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Decomposition.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/EnumToString.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Exception.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Generators.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Matchers.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Message.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Misc.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/ToStringByte.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/ToStringChrono.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/ToStringGeneral.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/ToStringOptional.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/ToStringPair.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/ToStringTuple.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/ToStringVariant.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/ToStringVector.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/ToStringWhich.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/Tricky.tests.cpp Examining data/catch2-2.13.3/projects/SelfTest/UsageTests/VariadicMacros.tests.cpp Examining data/catch2-2.13.3/projects/XCode/OCTest/OCTest/CatchOCTestCase.h Examining data/catch2-2.13.3/projects/XCode/OCTest/OCTest/TestObj.h Examining data/catch2-2.13.3/single_include/catch2/catch.hpp Examining data/catch2-2.13.3/single_include/catch2/catch_reporter_automake.hpp Examining data/catch2-2.13.3/single_include/catch2/catch_reporter_sonarqube.hpp Examining data/catch2-2.13.3/single_include/catch2/catch_reporter_tap.hpp Examining data/catch2-2.13.3/single_include/catch2/catch_reporter_teamcity.hpp Examining data/catch2-2.13.3/third_party/clara.hpp FINAL RESULTS: data/catch2-2.13.3/examples/300-Gen-OwnGenerator.cpp:40:42: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. Catch::Generators::GeneratorWrapper<int> random(int low, int high) { data/catch2-2.13.3/examples/300-Gen-OwnGenerator.cpp:48:37: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. auto i = GENERATE(take(100, random(-100, 100))); data/catch2-2.13.3/examples/310-Gen-VariablesInGenerators.cpp:27:42: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. auto number = GENERATE_COPY(take(50, random(std::get<0>(r), std::get<1>(r)))); data/catch2-2.13.3/examples/311-Gen-CustomCapture.cpp:33:44: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. return makeGenerators(take(50, random(std::get<0>(r1), std::get<1>(r2)))); data/catch2-2.13.3/include/internal/catch_generators_specific.hpp:69:1: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. random(T a, T b) { data/catch2-2.13.3/include/internal/catch_generators_specific.hpp:78:1: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. random(T a, T b) { data/catch2-2.13.3/include/internal/catch_run_context.cpp:587:18: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. std::srand(config.rngSeed()); data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp:306:36: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. auto value = GENERATE(take(10, random(0, 10))); data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp:331:43: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. auto random1 = Catch::Generators::random(0, 1000); data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp:332:43: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. auto random2 = Catch::Generators::random(0, 1000); data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp:342:43: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. auto random1 = Catch::Generators::random(0., 1000.); data/catch2-2.13.3/projects/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp:343:43: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. auto random2 = Catch::Generators::random(0., 1000.); data/catch2-2.13.3/projects/SelfTest/UsageTests/Generators.tests.cpp:185:37: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. auto val = GENERATE(take(4, random(0, 1))); data/catch2-2.13.3/projects/SelfTest/UsageTests/Generators.tests.cpp:191:37: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. auto val = GENERATE(take(4, random(0., 1.))); data/catch2-2.13.3/single_include/catch2/catch.hpp:4641:1: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. random(T a, T b) { data/catch2-2.13.3/single_include/catch2/catch.hpp:4650:1: [3] (random) random: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. random(T a, T b) { data/catch2-2.13.3/single_include/catch2/catch.hpp:13089:18: [3] (random) srand: This function is not sufficiently random for security-related functions such as key and nonce creation (CWE-327). Use a more secure technique for acquiring random values. std::srand(config.rngSeed()); data/catch2-2.13.3/include/internal/catch_matchers_floating.cpp:31:14: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&i, &f, sizeof(f)); data/catch2-2.13.3/include/internal/catch_matchers_floating.cpp:38:14: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&i, &d, sizeof(d)); data/catch2-2.13.3/include/internal/catch_option.hpp:68:29: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. alignas(alignof(T)) char storage[sizeof(T)]; data/catch2-2.13.3/include/internal/catch_output_redirect.cpp:70:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[100]; data/catch2-2.13.3/include/internal/catch_output_redirect.cpp:79:23: [2] (tmpfile) tmpfile: Function tmpfile() has a security flaw on some systems (e.g., older System V systems) (CWE-377). m_file = std::tmpfile(); data/catch2-2.13.3/include/internal/catch_output_redirect.cpp:104:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[100] = {}; data/catch2-2.13.3/include/internal/catch_output_redirect.h:87:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char m_buffer[L_tmpnam] = { 0 }; data/catch2-2.13.3/include/internal/catch_run_context.cpp:54:30: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). tracker->open(); data/catch2-2.13.3/include/internal/catch_session.cpp:220:31: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char **utf8Argv = new char *[ argc ]; data/catch2-2.13.3/include/internal/catch_stream.cpp:31:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char data[bufferSize]; data/catch2-2.13.3/include/internal/catch_stream.cpp:80:23: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). m_ofs.open( filename.c_str() ); data/catch2-2.13.3/include/internal/catch_test_case_tracker.cpp:119:23: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void TrackerBase::open() { data/catch2-2.13.3/include/internal/catch_test_case_tracker.cpp:220:13: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). open(); data/catch2-2.13.3/include/internal/catch_test_case_tracker.h:139:14: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void open(); data/catch2-2.13.3/include/internal/catch_tostring.h:645:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char timeStamp[timeStampSize]; data/catch2-2.13.3/include/reporters/catch_reporter_bases.cpp:32:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[maxDoubleSize]; data/catch2-2.13.3/include/reporters/catch_reporter_bases.cpp:39:14: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. std::sprintf(buffer, "%.3f", duration); data/catch2-2.13.3/include/reporters/catch_reporter_bases.hpp:265:16: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0}; data/catch2-2.13.3/include/reporters/catch_reporter_console.cpp:288:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void open() { data/catch2-2.13.3/include/reporters/catch_reporter_console.cpp:322:12: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). tp.open(); data/catch2-2.13.3/include/reporters/catch_reporter_junit.cpp:40:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char timeStamp[timeStampSize]; data/catch2-2.13.3/single_include/catch2/catch.hpp:2153:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char timeStamp[timeStampSize]; data/catch2-2.13.3/single_include/catch2/catch.hpp:4452:29: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. alignas(alignof(T)) char storage[sizeof(T)]; data/catch2-2.13.3/single_include/catch2/catch.hpp:5954:16: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. static char line[CATCH_CONFIG_CONSOLE_WIDTH] = {0}; data/catch2-2.13.3/single_include/catch2/catch.hpp:7578:14: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void open(); data/catch2-2.13.3/single_include/catch2/catch.hpp:11423:14: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&i, &f, sizeof(f)); data/catch2-2.13.3/single_include/catch2/catch.hpp:11430:14: [2] (buffer) memcpy: Does not check for buffer overflows when copying to destination (CWE-120). Make sure destination can always hold the source data. std::memcpy(&i, &d, sizeof(d)); data/catch2-2.13.3/single_include/catch2/catch.hpp:11954:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char m_buffer[L_tmpnam] = { 0 }; data/catch2-2.13.3/single_include/catch2/catch.hpp:12041:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[100]; data/catch2-2.13.3/single_include/catch2/catch.hpp:12050:23: [2] (tmpfile) tmpfile: Function tmpfile() has a security flaw on some systems (e.g., older System V systems) (CWE-377). m_file = std::tmpfile(); data/catch2-2.13.3/single_include/catch2/catch.hpp:12074:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[100] = {}; data/catch2-2.13.3/single_include/catch2/catch.hpp:12558:30: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). tracker->open(); data/catch2-2.13.3/single_include/catch2/catch.hpp:13418:31: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char **utf8Argv = new char *[ argc ]; data/catch2-2.13.3/single_include/catch2/catch.hpp:13579:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char data[bufferSize]; data/catch2-2.13.3/single_include/catch2/catch.hpp:13628:23: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). m_ofs.open( filename.c_str() ); data/catch2-2.13.3/single_include/catch2/catch.hpp:14379:23: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void TrackerBase::open() { data/catch2-2.13.3/single_include/catch2/catch.hpp:14480:13: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). open(); data/catch2-2.13.3/single_include/catch2/catch.hpp:15709:9: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char buffer[maxDoubleSize]; data/catch2-2.13.3/single_include/catch2/catch.hpp:15716:14: [2] (buffer) sprintf: Does not check for buffer overflows (CWE-120). Use sprintf_s, snprintf, or vsnprintf. Risk is low because the source has a constant maximum length. std::sprintf(buffer, "%.3f", duration); data/catch2-2.13.3/single_include/catch2/catch.hpp:16313:10: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). void open() { data/catch2-2.13.3/single_include/catch2/catch.hpp:16347:12: [2] (misc) open: Check when opening files - can an attacker redirect it (via symlinks), force the opening of special file type (e.g., device files), move things around to create a race condition, control its ancestors, or change its contents? (CWE-362). tp.open(); data/catch2-2.13.3/single_include/catch2/catch.hpp:16751:13: [2] (buffer) char: Statically-sized arrays can be improperly restricted, leading to potential overflows or other issues (CWE-119!/CWE-120). Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length. char timeStamp[timeStampSize]; data/catch2-2.13.3/include/internal/catch_matchers_vector.h:137:29: [1] (buffer) is_permutation: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. return std::is_permutation(m_target.begin(), m_target.end(), vec.begin()); data/catch2-2.13.3/include/internal/catch_session.cpp:249:36: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). static_cast<void>(std::getchar()); data/catch2-2.13.3/include/internal/catch_session.cpp:254:36: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). static_cast<void>(std::getchar()); data/catch2-2.13.3/include/internal/catch_string_manip.cpp:26:50: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin()); data/catch2-2.13.3/include/internal/catch_string_manip.cpp:32:50: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin()); data/catch2-2.13.3/include/internal/catch_stringref.cpp:18:67: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). : StringRef( rawChars, static_cast<StringRef::size_type>(std::strlen(rawChars) ) ) data/catch2-2.13.3/projects/SelfTest/UsageTests/Generators.tests.cpp:53:13: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). REQUIRE(strlen(std::get<0>(data)) == static_cast<size_t>(std::get<1>(data))); data/catch2-2.13.3/single_include/catch2/catch.hpp:3718:29: [1] (buffer) is_permutation: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. return std::is_permutation(m_target.begin(), m_target.end(), vec.begin()); data/catch2-2.13.3/single_include/catch2/catch.hpp:13447:36: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). static_cast<void>(std::getchar()); data/catch2-2.13.3/single_include/catch2/catch.hpp:13452:36: [1] (buffer) getchar: Check buffer boundaries if used in a loop including recursive loops (CWE-120, CWE-20). static_cast<void>(std::getchar()); data/catch2-2.13.3/single_include/catch2/catch.hpp:13751:50: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. return s.size() >= prefix.size() && std::equal(prefix.begin(), prefix.end(), s.begin()); data/catch2-2.13.3/single_include/catch2/catch.hpp:13757:50: [1] (buffer) equal: Function does not check the second iterator for over-read conditions (CWE-126). This function is often discouraged by most C++ coding standards in favor of its safer alternatives provided since C++14. Consider using a form of this function that checks the second iterator before potentially overflowing it. return s.size() >= suffix.size() && std::equal(suffix.rbegin(), suffix.rend(), s.rbegin()); data/catch2-2.13.3/single_include/catch2/catch.hpp:13845:67: [1] (buffer) strlen: Does not handle strings that are not \0-terminated; if given one it may perform an over-read (it could cause a crash if unprotected) (CWE-126). : StringRef( rawChars, static_cast<StringRef::size_type>(std::strlen(rawChars) ) ) ANALYSIS SUMMARY: Hits = 72 Lines analyzed = 49003 in approximately 1.10 seconds (44351 lines/second) Physical Source Lines of Code (SLOC) = 36355 Hits@level = [0] 1 [1] 13 [2] 42 [3] 17 [4] 0 [5] 0 Hits@level+ = [0+] 73 [1+] 72 [2+] 59 [3+] 17 [4+] 0 [5+] 0 Hits/KSLOC@level+ = [0+] 2.00798 [1+] 1.98047 [2+] 1.62289 [3+] 0.467611 [4+] 0 [5+] 0 Dot directories skipped = 3 (--followdotdir overrides) Minimum risk level = 1 Not every hit is necessarily a security vulnerability. There may be other security vulnerabilities; review your code! See 'Secure Programming HOWTO' (https://dwheeler.com/secure-programs) for more information.