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/catch-1.12.1/include/catch.hpp
Examining data/catch-1.12.1/include/catch_session.hpp
Examining data/catch-1.12.1/include/catch_with_main.hpp
Examining data/catch-1.12.1/include/external/clara.h
Examining data/catch-1.12.1/include/external/tbc_text_format.h
Examining data/catch-1.12.1/include/internal/catch_approx.hpp
Examining data/catch-1.12.1/include/internal/catch_assertionresult.h
Examining data/catch-1.12.1/include/internal/catch_assertionresult.hpp
Examining data/catch-1.12.1/include/internal/catch_capture.hpp
Examining data/catch-1.12.1/include/internal/catch_clara.h
Examining data/catch-1.12.1/include/internal/catch_commandline.hpp
Examining data/catch-1.12.1/include/internal/catch_common.h
Examining data/catch-1.12.1/include/internal/catch_common.hpp
Examining data/catch-1.12.1/include/internal/catch_compiler_capabilities.h
Examining data/catch-1.12.1/include/internal/catch_config.hpp
Examining data/catch-1.12.1/include/internal/catch_console_colour.hpp
Examining data/catch-1.12.1/include/internal/catch_console_colour_impl.hpp
Examining data/catch-1.12.1/include/internal/catch_context.h
Examining data/catch-1.12.1/include/internal/catch_context_impl.hpp
Examining data/catch-1.12.1/include/internal/catch_debugger.h
Examining data/catch-1.12.1/include/internal/catch_debugger.hpp
Examining data/catch-1.12.1/include/internal/catch_default_main.hpp
Examining data/catch-1.12.1/include/internal/catch_errno_guard.hpp
Examining data/catch-1.12.1/include/internal/catch_evaluate.hpp
Examining data/catch-1.12.1/include/internal/catch_exception_translator_registry.hpp
Examining data/catch-1.12.1/include/internal/catch_expression_lhs.hpp
Examining data/catch-1.12.1/include/internal/catch_fatal_condition.hpp
Examining data/catch-1.12.1/include/internal/catch_generators.hpp
Examining data/catch-1.12.1/include/internal/catch_generators_impl.hpp
Examining data/catch-1.12.1/include/internal/catch_impl.hpp
Examining data/catch-1.12.1/include/internal/catch_interfaces_capture.h
Examining data/catch-1.12.1/include/internal/catch_interfaces_config.h
Examining data/catch-1.12.1/include/internal/catch_interfaces_exception.h
Examining data/catch-1.12.1/include/internal/catch_interfaces_generators.h
Examining data/catch-1.12.1/include/internal/catch_interfaces_registry_hub.h
Examining data/catch-1.12.1/include/internal/catch_interfaces_reporter.h
Examining data/catch-1.12.1/include/internal/catch_interfaces_runner.h
Examining data/catch-1.12.1/include/internal/catch_interfaces_tag_alias_registry.h
Examining data/catch-1.12.1/include/internal/catch_interfaces_testcase.h
Examining data/catch-1.12.1/include/internal/catch_legacy_reporter_adapter.h
Examining data/catch-1.12.1/include/internal/catch_legacy_reporter_adapter.hpp
Examining data/catch-1.12.1/include/internal/catch_list.hpp
Examining data/catch-1.12.1/include/internal/catch_matchers.hpp
Examining data/catch-1.12.1/include/internal/catch_matchers_string.h
Examining data/catch-1.12.1/include/internal/catch_matchers_string.hpp
Examining data/catch-1.12.1/include/internal/catch_matchers_vector.h
Examining data/catch-1.12.1/include/internal/catch_message.h
Examining data/catch-1.12.1/include/internal/catch_message.hpp
Examining data/catch-1.12.1/include/internal/catch_notimplemented_exception.h
Examining data/catch-1.12.1/include/internal/catch_notimplemented_exception.hpp
Examining data/catch-1.12.1/include/internal/catch_objc.hpp
Examining data/catch-1.12.1/include/internal/catch_objc_arc.hpp
Examining data/catch-1.12.1/include/internal/catch_option.hpp
Examining data/catch-1.12.1/include/internal/catch_platform.h
Examining data/catch-1.12.1/include/internal/catch_ptr.hpp
Examining data/catch-1.12.1/include/internal/catch_reenable_warnings.h
Examining data/catch-1.12.1/include/internal/catch_registry_hub.hpp
Examining data/catch-1.12.1/include/internal/catch_reporter_registrars.hpp
Examining data/catch-1.12.1/include/internal/catch_reporter_registry.hpp
Examining data/catch-1.12.1/include/internal/catch_result_builder.h
Examining data/catch-1.12.1/include/internal/catch_result_builder.hpp
Examining data/catch-1.12.1/include/internal/catch_result_type.h
Examining data/catch-1.12.1/include/internal/catch_run_context.hpp
Examining data/catch-1.12.1/include/internal/catch_section.h
Examining data/catch-1.12.1/include/internal/catch_section.hpp
Examining data/catch-1.12.1/include/internal/catch_section_info.h
Examining data/catch-1.12.1/include/internal/catch_section_info.hpp
Examining data/catch-1.12.1/include/internal/catch_stream.h
Examining data/catch-1.12.1/include/internal/catch_stream.hpp
Examining data/catch-1.12.1/include/internal/catch_streambuf.h
Examining data/catch-1.12.1/include/internal/catch_suppress_warnings.h
Examining data/catch-1.12.1/include/internal/catch_tag_alias.h
Examining data/catch-1.12.1/include/internal/catch_tag_alias_registry.h
Examining data/catch-1.12.1/include/internal/catch_tag_alias_registry.hpp
Examining data/catch-1.12.1/include/internal/catch_test_case_info.h
Examining data/catch-1.12.1/include/internal/catch_test_case_info.hpp
Examining data/catch-1.12.1/include/internal/catch_test_case_registry_impl.hpp
Examining data/catch-1.12.1/include/internal/catch_test_case_tracker.hpp
Examining data/catch-1.12.1/include/internal/catch_test_registry.hpp
Examining data/catch-1.12.1/include/internal/catch_test_spec.hpp
Examining data/catch-1.12.1/include/internal/catch_test_spec_parser.hpp
Examining data/catch-1.12.1/include/internal/catch_text.h
Examining data/catch-1.12.1/include/internal/catch_timer.h
Examining data/catch-1.12.1/include/internal/catch_timer.hpp
Examining data/catch-1.12.1/include/internal/catch_tostring.h
Examining data/catch-1.12.1/include/internal/catch_tostring.hpp
Examining data/catch-1.12.1/include/internal/catch_totals.hpp
Examining data/catch-1.12.1/include/internal/catch_type_traits.hpp
Examining data/catch-1.12.1/include/internal/catch_version.h
Examining data/catch-1.12.1/include/internal/catch_version.hpp
Examining data/catch-1.12.1/include/internal/catch_wildcard_pattern.hpp
Examining data/catch-1.12.1/include/internal/catch_windows_h_proxy.h
Examining data/catch-1.12.1/include/internal/catch_xmlwriter.hpp
Examining data/catch-1.12.1/include/reporters/catch_reporter_automake.hpp
Examining data/catch-1.12.1/include/reporters/catch_reporter_bases.hpp
Examining data/catch-1.12.1/include/reporters/catch_reporter_compact.hpp
Examining data/catch-1.12.1/include/reporters/catch_reporter_console.hpp
Examining data/catch-1.12.1/include/reporters/catch_reporter_junit.hpp
Examining data/catch-1.12.1/include/reporters/catch_reporter_multi.hpp
Examining data/catch-1.12.1/include/reporters/catch_reporter_tap.hpp
Examining data/catch-1.12.1/include/reporters/catch_reporter_teamcity.hpp
Examining data/catch-1.12.1/include/reporters/catch_reporter_xml.hpp
Examining data/catch-1.12.1/projects/Benchmark/BenchMain.cpp
Examining data/catch-1.12.1/projects/Benchmark/StringificationBench.cpp
Examining data/catch-1.12.1/projects/SelfTest/ApproxTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/BDDTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/ClassTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/CmdLineTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/CompilationTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/ConditionTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/DecompositionTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/EnumToString.cpp
Examining data/catch-1.12.1/projects/SelfTest/ExceptionTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/GeneratorTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/MatchersTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/MessageTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/MiscTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/PartTrackerTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_common.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_debugger.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_interfaces_capture.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_interfaces_config.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_interfaces_exception.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_interfaces_generators.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_interfaces_registry_hub.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_interfaces_runner.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_interfaces_testcase.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_message.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_option.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_ptr.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_stream.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_streambuf.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_test_case_tracker.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_test_spec.cpp
Examining data/catch-1.12.1/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp
Examining data/catch-1.12.1/projects/SelfTest/TagAliasTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/TestMain.cpp
Examining data/catch-1.12.1/projects/SelfTest/ToStringGeneralTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/ToStringPair.cpp
Examining data/catch-1.12.1/projects/SelfTest/ToStringTuple.cpp
Examining data/catch-1.12.1/projects/SelfTest/ToStringVector.cpp
Examining data/catch-1.12.1/projects/SelfTest/ToStringWhich.cpp
Examining data/catch-1.12.1/projects/SelfTest/TrickyTests.cpp
Examining data/catch-1.12.1/projects/SelfTest/VariadicMacrosTests.cpp
Examining data/catch-1.12.1/single_include/catch.hpp
Examining data/catch-1.12.1/test_package/MainTest.cpp

FINAL RESULTS:

data/catch-1.12.1/include/internal/catch_common.hpp:95: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/catch-1.12.1/single_include/catch.hpp:8784: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/catch-1.12.1/include/catch_session.hpp:185:35:  [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/catch-1.12.1/include/internal/catch_fatal_condition.hpp:139: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 altStackMem[SIGSTKSZ];
data/catch-1.12.1/include/internal/catch_option.hpp:71: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 storage[sizeof(T)];
data/catch-1.12.1/include/internal/catch_stream.hpp:23: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 data[bufferSize];
data/catch-1.12.1/include/internal/catch_stream.hpp:61:15:  [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/catch-1.12.1/include/internal/catch_test_case_tracker.hpp:193: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/catch-1.12.1/include/internal/catch_test_case_tracker.hpp:287:17:  [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/catch-1.12.1/include/internal/catch_test_case_tracker.hpp:333:26:  [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/catch-1.12.1/include/internal/catch_tostring.h:80:23:  [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.
    struct TrueType { char sizer[1]; };
data/catch-1.12.1/include/internal/catch_tostring.h:81:24:  [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.
    struct FalseType { char sizer[2]; };
data/catch-1.12.1/include/internal/catch_tostring.hpp:29:21:  [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 asChar[sizeof (int)];
data/catch-1.12.1/include/reporters/catch_reporter_bases.hpp:30: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[maxDoubleSize];
data/catch-1.12.1/include/reporters/catch_reporter_bases.hpp:37:13:  [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.
            sprintf(buffer, "%.3f", duration);
data/catch-1.12.1/include/reporters/catch_reporter_bases.hpp:266: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/catch-1.12.1/include/reporters/catch_reporter_junit.hpp:37: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/catch-1.12.1/single_include/catch.hpp:1612:23:  [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.
    struct TrueType { char sizer[1]; };
data/catch-1.12.1/single_include/catch.hpp:1613:24:  [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.
    struct FalseType { char sizer[2]; };
data/catch-1.12.1/single_include/catch.hpp:3207: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 storage[sizeof(T)];
data/catch-1.12.1/single_include/catch.hpp:6214: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/catch-1.12.1/single_include/catch.hpp:6308:17:  [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/catch-1.12.1/single_include/catch.hpp:6354:26:  [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/catch-1.12.1/single_include/catch.hpp:6543: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 altStackMem[SIGSTKSZ];
data/catch-1.12.1/single_include/catch.hpp:7189:35:  [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/catch-1.12.1/single_include/catch.hpp:7703: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 data[bufferSize];
data/catch-1.12.1/single_include/catch.hpp:7740:15:  [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/catch-1.12.1/single_include/catch.hpp:8987:21:  [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 asChar[sizeof (int)];
data/catch-1.12.1/single_include/catch.hpp:9629: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[maxDoubleSize];
data/catch-1.12.1/single_include/catch.hpp:9636:13:  [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.
            sprintf(buffer, "%.3f", duration);
data/catch-1.12.1/single_include/catch.hpp:9863: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/catch-1.12.1/single_include/catch.hpp:10443: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/catch-1.12.1/include/catch_session.hpp:211:40:  [1] (buffer) getchar:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                static_cast<void>(std::getchar());
data/catch-1.12.1/include/catch_session.hpp:216:40:  [1] (buffer) getchar:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                static_cast<void>(std::getchar());
data/catch-1.12.1/include/internal/catch_common.hpp:19: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/catch-1.12.1/include/internal/catch_common.hpp:25: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/catch-1.12.1/single_include/catch.hpp:7215:40:  [1] (buffer) getchar:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                static_cast<void>(std::getchar());
data/catch-1.12.1/single_include/catch.hpp:7220:40:  [1] (buffer) getchar:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                static_cast<void>(std::getchar());
data/catch-1.12.1/single_include/catch.hpp:8708: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/catch-1.12.1/single_include/catch.hpp:8714: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());

ANALYSIS SUMMARY:

Hits = 40
Lines analyzed = 29168 in approximately 0.65 seconds (44548 lines/second)
Physical Source Lines of Code (SLOC) = 22257
Hits@level = [0]   1 [1]   8 [2]  30 [3]   2 [4]   0 [5]   0
Hits@level+ = [0+]  41 [1+]  40 [2+]  32 [3+]   2 [4+]   0 [5+]   0
Hits/KSLOC@level+ = [0+] 1.84212 [1+] 1.79719 [2+] 1.43775 [3+] 0.0898594 [4+]   0 [5+]   0
Dot directories skipped = 2 (--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.