summaryrefslogtreecommitdiff
path: root/implementation/endpoints/src/local_server_endpoint_impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'implementation/endpoints/src/local_server_endpoint_impl.cpp')
-rw-r--r--implementation/endpoints/src/local_server_endpoint_impl.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/implementation/endpoints/src/local_server_endpoint_impl.cpp b/implementation/endpoints/src/local_server_endpoint_impl.cpp
index ecfbd88..1d412e4 100644
--- a/implementation/endpoints/src/local_server_endpoint_impl.cpp
+++ b/implementation/endpoints/src/local_server_endpoint_impl.cpp
@@ -554,6 +554,7 @@ void local_server_endpoint_impl::connection::receive_cbk(
return;
}
+ bool is_error(false);
std::size_t its_start = 0;
std::size_t its_end = 0;
std::size_t its_iteration_gap = 0;
@@ -757,13 +758,17 @@ void local_server_endpoint_impl::connection::receive_cbk(
missing_capacity_ <= recv_buffer_.capacity() - recv_buffer_size_) {
missing_capacity_ = 0;
}
+ } else if (message_is_empty) {
+ VSOMEIP_ERROR << "Received garbage data.";
+ is_error = true;
}
}
} while (recv_buffer_size_ > 0 && found_message);
}
if (_error == boost::asio::error::eof
- || _error == boost::asio::error::connection_reset) {
+ || _error == boost::asio::error::connection_reset
+ || is_error) {
stop();
its_server->remove_connection(bound_client_);
security::get()->remove_client_to_uid_gid_mapping(bound_client_);