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/restbed-4.0~dfsg1/example/authentication/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/basic_authentication/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/bind_service_address/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/custom_methods/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/custom_status_codes/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/digest_authentication/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/error_handling/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/http_client/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/http_service/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/https_client/source/verify_none.cpp
Examining data/restbed-4.0~dfsg1/example/https_client/source/verify_peer.cpp
Examining data/restbed-4.0~dfsg1/example/https_service/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/logging/source/custom_logger.hpp
Examining data/restbed-4.0~dfsg1/example/logging/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/multithreaded_service/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/pam_authentication/source/base64.h
Examining data/restbed-4.0~dfsg1/example/pam_authentication/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/pam_authentication/source/pam.h
Examining data/restbed-4.0~dfsg1/example/path_parameters/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/persistent_connection/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/publishing_multipath_resources/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/publishing_resources/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/resource_filtering/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/rules_engine/source/accept_rule.hpp
Examining data/restbed-4.0~dfsg1/example/rules_engine/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/rules_engine/source/host_rule.hpp
Examining data/restbed-4.0~dfsg1/example/schedule_work_on_service_runloop/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/service_ready_handler/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/serving_html/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/session_data/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/session_manager/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/signal_handling/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/syslog_logging/source/example.cpp
Examining data/restbed-4.0~dfsg1/example/syslog_logging/source/syslog_logger.hpp
Examining data/restbed-4.0~dfsg1/example/transfer_encoding_response/source/example.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/byte.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/context_placeholder.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/context_placeholder_base.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/context_value.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/http_impl.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/http_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/request_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/resource_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/response_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/rule_engine_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/rule_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/service_impl.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/service_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/session_impl.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/session_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/settings_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/ssl_settings_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/uri_impl.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/http.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/http.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/logger.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/request.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/request.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/resource.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/resource.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/response.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/response.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/rule.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/rule.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/service.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/service.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/session.cpp
Parsing failed to find end of parameter list; semicolon terminated it in ( m_pimpl->m_request->m_pimpl->m_buffer, "\r\n\r\n", [ this, session ]( const error_code & error, const size_t length )
                {
                    m_pimpl->m_keep_alive_callback( error, len
Parsing failed to find end of parameter list; semicolon terminated it in ( m_pimpl->m_request->m_pimpl->m_buffer, size, [ this, session, length, callback ]( const error_code & error, size_t )
            {
                if ( error )
                {
                    
Parsing failed to find end of parameter list; semicolon terminated it in ( m_pimpl->m_request->m_pimpl->m_buffer, delimiter, [ this, session, callback ]( const error_code & error, size_t length )
        {
            if ( error )
            {
                const auto m
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/session.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/session_manager.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/session_manager.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/settings.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/settings.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/ssl_settings.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/ssl_settings.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/status_code.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/string.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/string.hpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/uri.cpp
Examining data/restbed-4.0~dfsg1/source/corvusoft/restbed/uri.hpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/connection_timeout/client.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/connection_timeout/server.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_authentication/resource.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_authentication/service.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_error_handling/resource.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_error_handling/service.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_failed_resource_filter_validation_handler/resource.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_failed_resource_filter_validation_handler/service.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_connect.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_delete.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_get.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_head.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_invoke.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_options.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_patch.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_post.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_put.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_http_methods/http_trace.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_method_not_allowed_handler/feature.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_method_not_implemented_handler/feature.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_resource_not_found_handler/feature.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/custom_status_message/feature.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_client/async.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_client/close.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_client/connect.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_client/fetch.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_client/keep_alive.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_method_handlers/http_connect.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_method_handlers/http_delete.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_method_handlers/http_get.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_method_handlers/http_head.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_method_handlers/http_options.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_method_handlers/http_patch.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_method_handlers/http_post.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_method_handlers/http_put.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/http_method_handlers/http_trace.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/path_parameters/feature.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publish_duplicate_resources/feature.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_multi_path_resources/http_connect.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_multi_path_resources/http_delete.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_multi_path_resources/http_get.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_multi_path_resources/http_head.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_multi_path_resources/http_options.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_multi_path_resources/http_patch.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_multi_path_resources/http_post.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_multi_path_resources/http_put.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_multi_path_resources/http_trace.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_single_path_resources/http_connect.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_single_path_resources/http_delete.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_single_path_resources/http_get.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_single_path_resources/http_head.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_single_path_resources/http_options.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_single_path_resources/http_patch.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_single_path_resources/http_post.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_single_path_resources/http_put.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/publishing_single_path_resources/http_trace.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/query_parameters/feature.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/resource_method_filters/feature.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/rules_engine/content_length_rule.hpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/rules_engine/content_type_rule.hpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/rules_engine/mixed.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/rules_engine/resource.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/rules_engine/service.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/runtime_service_modifications/feature.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/service_case_sensitivity/case_insensitive.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/service_case_sensitivity/case_sensitive.cpp
Examining data/restbed-4.0~dfsg1/test/acceptance/source/signal_handling/feature.cpp
Examining data/restbed-4.0~dfsg1/test/integration/source/http_suite.cpp
Examining data/restbed-4.0~dfsg1/test/integration/source/request_suite.cpp
Examining data/restbed-4.0~dfsg1/test/integration/source/resource_suite.cpp
Examining data/restbed-4.0~dfsg1/test/integration/source/response_suite.cpp
Examining data/restbed-4.0~dfsg1/test/integration/source/service_suite.cpp
Examining data/restbed-4.0~dfsg1/test/integration/source/session_suite.cpp
Examining data/restbed-4.0~dfsg1/test/integration/source/settings_suite.cpp
Examining data/restbed-4.0~dfsg1/test/integration/source/ssl_settings_suite.cpp
Examining data/restbed-4.0~dfsg1/test/integration/source/string_suite.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/client_fails_to_calculate_correct_response_body_length.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/content_length_present_on_empty_response_body.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/content_type_present_on_empty_response_body.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/error_handler_not_overwritten.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/exception_thrown_with_space_in_resource_path.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/fails_to_parse_header_values_containing_colons.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/fails_to_parse_identical_query_parameters.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/large_request_bodies_being_trimmed.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/missing_regex_support_on_gcc_4.8.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/multiple_log_entries.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/path_parameters_are_not_visible_within_rules.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/request_get_parameters_fails_to_return_data.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/request_uris_are_not_being_decoded.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/resource_instance_destroyed_with_bound_method_functors.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/resource_responding_on_invalid_path.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/resources_are_not_overwritten.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/segmentation_fault_on_mismatched_path.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/string_replace_fails_to_replace_embedded_targets.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/uncaught_exception_when_peer_closes_connection.cpp
Examining data/restbed-4.0~dfsg1/test/regression/source/uri_fails_to_handle_file_scheme_relative_paths.cpp
Examining data/restbed-4.0~dfsg1/test/unit/source/request_suite.cpp
Examining data/restbed-4.0~dfsg1/test/unit/source/resource_suite.cpp
Examining data/restbed-4.0~dfsg1/test/unit/source/response_suite.cpp
Examining data/restbed-4.0~dfsg1/test/unit/source/service_suite.cpp
Examining data/restbed-4.0~dfsg1/test/unit/source/session_suite.cpp
Examining data/restbed-4.0~dfsg1/test/unit/source/settings_suite.cpp
Examining data/restbed-4.0~dfsg1/test/unit/source/ssl_settings_suite.cpp
Examining data/restbed-4.0~dfsg1/test/unit/source/string_suite.cpp
Examining data/restbed-4.0~dfsg1/test/unit/source/uri_suite.cpp

FINAL RESULTS:

data/restbed-4.0~dfsg1/example/logging/source/custom_logger.hpp:27:13:  [4] (format) vfprintf:
  If format strings can be influenced by an attacker, they can be exploited
  (CWE-134). Use a constant for the format specification.
            vfprintf( stderr, format, arguments );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/string.cpp:163:31:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
        int required_length = vsnprintf( formatted, length + 1, format, arguments );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/uri.cpp:35:12:  [4] (format) snprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
using std::snprintf;
data/restbed-4.0~dfsg1/test/regression/source/multiple_log_entries.cpp:26:12:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
using std::vsnprintf;
data/restbed-4.0~dfsg1/test/regression/source/multiple_log_entries.cpp:62:33:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
            const auto length = vsnprintf( nullptr, 0, format, temporary ) + 1;
data/restbed-4.0~dfsg1/test/regression/source/multiple_log_entries.cpp:68:18:  [4] (format) vsnprintf:
  If format strings can be influenced by an attacker, they can be exploited,
  and note that sprintf variations do not always \0-terminate (CWE-134). Use
  a constant for the format specification.
            if ( vsnprintf( &buffer[ 0 ], length, format, arguments ) < 0 )
data/restbed-4.0~dfsg1/example/pam_authentication/source/base64.h:42:14:  [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.
    unsigned char char_array_3[3];
data/restbed-4.0~dfsg1/example/pam_authentication/source/base64.h:43:14:  [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.
    unsigned char char_array_4[4];
data/restbed-4.0~dfsg1/example/pam_authentication/source/base64.h:86:14:  [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.
    unsigned char char_array_4[4], char_array_3[3];
data/restbed-4.0~dfsg1/source/corvusoft/restbed/uri.cpp:108:17:  [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 hexidecimal[ 3 ] = { 0 };
data/restbed-4.0~dfsg1/source/corvusoft/restbed/uri.cpp:135: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 hexidecimal[ 4 ] = { 0 };
data/restbed-4.0~dfsg1/example/pam_authentication/source/pam.h:35:30:  [1] (buffer) strncpy:
  Easily used incorrectly; doesn't always \0-terminate or check for invalid
  pointers [MS-banned] (CWE-120).
        response[ 0 ].resp = strncpy( pass, password.data( ), password.length( ) );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/http_impl.cpp:202:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            request->m_pimpl->m_socket->read( request->m_pimpl->m_buffer, "\r\n", bind( read_status_handler, _1, _2, request, callback ) );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/http_impl.cpp:246:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            request->m_pimpl->m_socket->read( request->m_pimpl->m_buffer, "\r\n\r\n", bind( read_headers_handler, _1, _2, request, callback ) );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/service_impl.cpp:297:73:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                        session->m_pimpl->m_request->m_pimpl->m_socket->read( session->m_pimpl->m_request->m_pimpl->m_buffer, "\r\n\r\n", bind( &ServiceImpl::parse_request, this, _1, _2, session ) );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/service_impl.cpp:531:69:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                    session->m_pimpl->m_request->m_pimpl->m_socket->read( session->m_pimpl->m_request->m_pimpl->m_buffer, "\r\n\r\n", bind( &ServiceImpl::parse_request, this, _1, _2, session ) );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.cpp:211:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        size_t SocketImpl::read( const shared_ptr< asio::streambuf >& data, const size_t length, error_code& error )
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.cpp:223:30:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                size = asio::read( *m_socket, *data, asio::transfer_at_least( length ), error );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.cpp:228:30:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                size = asio::read( *m_ssl_socket, *data, asio::transfer_at_least( length ), error );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.cpp:242:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        void SocketImpl::read( const shared_ptr< asio::streambuf >& data, const size_t length, const function< void ( const error_code&, size_t ) >& callback )
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.cpp:290:28:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        size_t SocketImpl::read( const shared_ptr< asio::streambuf >& data, const string& delimiter, error_code& error )
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.cpp:322:26:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        void SocketImpl::read( const shared_ptr< asio::streambuf >& data, const string& delimiter, const function< void ( const error_code&, size_t ) >& callback )
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.hpp:70:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                size_t read( const std::shared_ptr< asio::streambuf >& data, const std::size_t length, std::error_code& error );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.hpp:72:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                void read( const std::shared_ptr< asio::streambuf >& data, const std::size_t length, const std::function< void ( const std::error_code&, std::size_t ) >& callback );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.hpp:74:24:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                size_t read( const std::shared_ptr< asio::streambuf >& data, const std::string& delimiter, std::error_code& error );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/detail/socket_impl.hpp:76:22:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                void read( const std::shared_ptr< asio::streambuf >& data, const std::string& delimiter, const std::function< void ( const std::error_code&, std::size_t ) >& callback );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/http.cpp:222:41:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            request->m_pimpl->m_socket->read( request->m_pimpl->m_buffer, size, error );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/http.cpp:269:57:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        const size_t size = request->m_pimpl->m_socket->read( request->m_pimpl->m_buffer, delimiter, error );
data/restbed-4.0~dfsg1/source/corvusoft/restbed/session.cpp:234:56:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
                m_pimpl->m_request->m_pimpl->m_socket->read( m_pimpl->m_request->m_pimpl->m_buffer, "\r\n\r\n", [ this, session ]( const error_code & error, const size_t length )
data/restbed-4.0~dfsg1/source/corvusoft/restbed/session.cpp:292:52:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
            m_pimpl->m_request->m_pimpl->m_socket->read( m_pimpl->m_request->m_pimpl->m_buffer, size, [ this, session, length, callback ]( const error_code & error, size_t )
data/restbed-4.0~dfsg1/source/corvusoft/restbed/session.cpp:320:48:  [1] (buffer) read:
  Check buffer boundaries if used in a loop including recursive loops
  (CWE-120, CWE-20).
        m_pimpl->m_request->m_pimpl->m_socket->read( m_pimpl->m_request->m_pimpl->m_buffer, delimiter, [ this, session, callback ]( const error_code & error, size_t length )

ANALYSIS SUMMARY:

Hits = 31
Lines analyzed = 22113 in approximately 0.46 seconds (47726 lines/second)
Physical Source Lines of Code (SLOC) = 15272
Hits@level = [0]  37 [1]  20 [2]   5 [3]   0 [4]   6 [5]   0
Hits@level+ = [0+]  68 [1+]  31 [2+]  11 [3+]   6 [4+]   6 [5+]   0
Hits/KSLOC@level+ = [0+] 4.45259 [1+] 2.02986 [2+] 0.720272 [3+] 0.392876 [4+] 0.392876 [5+]   0
Dot directories skipped = 1 (--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.