diff options
author | Juergen Gehring <juergen.gehring@bmw.de> | 2018-01-25 00:40:05 -0800 |
---|---|---|
committer | Juergen Gehring <juergen.gehring@bmw.de> | 2018-01-25 00:40:05 -0800 |
commit | 3f1a365a25910caee2c740b3ca3bd4f07c8c0779 (patch) | |
tree | fa9756213c153f540a7abae78dcbe617937cd2ee | |
parent | 79fd5f7a34ed33392f71fa914a60b2e68b28de68 (diff) | |
download | vSomeIP-3f1a365a25910caee2c740b3ca3bd4f07c8c0779.tar.gz |
vsomeip 2.10.12.10.1
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | CMakeLists.txt | 2 | ||||
-rw-r--r-- | implementation/endpoints/src/local_server_endpoint_impl.cpp | 26 | ||||
-rw-r--r-- | implementation/endpoints/src/tcp_server_endpoint_impl.cpp | 26 |
4 files changed, 19 insertions, 39 deletions
@@ -1,6 +1,10 @@ Changes ======= +v2.10.1 +- Fix possible memory corruption in routing manager on TCP connection + reset + v2.10.0 - Add register_async_subscription_handler to application interface - Ensure faster stopping of UDP and TCP endpoints diff --git a/CMakeLists.txt b/CMakeLists.txt index 39f583c..a35193a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ project (vsomeip) set (VSOMEIP_MAJOR_VERSION 2) set (VSOMEIP_MINOR_VERSION 10) -set (VSOMEIP_PATCH_VERSION 0) +set (VSOMEIP_PATCH_VERSION 1) set (VSOMEIP_VERSION ${VSOMEIP_MAJOR_VERSION}.${VSOMEIP_MINOR_VERSION}.${VSOMEIP_PATCH_VERSION}) set (PACKAGE_VERSION ${VSOMEIP_VERSION}) # Used in documentatin/doxygen.in set (CMAKE_VERBOSE_MAKEFILE off) diff --git a/implementation/endpoints/src/local_server_endpoint_impl.cpp b/implementation/endpoints/src/local_server_endpoint_impl.cpp index 460fe40..aab09cf 100644 --- a/implementation/endpoints/src/local_server_endpoint_impl.cpp +++ b/implementation/endpoints/src/local_server_endpoint_impl.cpp @@ -173,25 +173,13 @@ bool local_server_endpoint_impl::get_default_target( void local_server_endpoint_impl::remove_connection( local_server_endpoint_impl::connection *_connection) { - endpoint_type its_target; - { - std::lock_guard<std::mutex> its_lock(connections_mutex_); - for (auto it = connections_.begin(); it != connections_.end();) { - if (it->second.get() == _connection) { - its_target = it->first; - it = connections_.erase(it); - break; - } else { - ++it; - } - } - } - { - // delete outstanding responses for this connection as well - std::lock_guard<std::mutex> its_lock(mutex_); - const auto found_target = queues_.find(its_target); - if (found_target != queues_.end()) { - found_target->second.clear(); + std::lock_guard<std::mutex> its_lock(connections_mutex_); + for (auto it = connections_.begin(); it != connections_.end();) { + if (it->second.get() == _connection) { + it = connections_.erase(it); + break; + } else { + ++it; } } } diff --git a/implementation/endpoints/src/tcp_server_endpoint_impl.cpp b/implementation/endpoints/src/tcp_server_endpoint_impl.cpp index e39589a..dda45bf 100644 --- a/implementation/endpoints/src/tcp_server_endpoint_impl.cpp +++ b/implementation/endpoints/src/tcp_server_endpoint_impl.cpp @@ -140,25 +140,13 @@ bool tcp_server_endpoint_impl::get_default_target(service_t, void tcp_server_endpoint_impl::remove_connection( tcp_server_endpoint_impl::connection *_connection) { - endpoint_type its_target; - { - std::lock_guard<std::mutex> its_lock(connections_mutex_); - for (auto it = connections_.begin(); it != connections_.end();) { - if (it->second.get() == _connection) { - its_target = it->first; - it = connections_.erase(it); - break; - } else { - ++it; - } - } - } - { - // delete outstanding responses for this connection as well - std::lock_guard<std::mutex> its_lock(mutex_); - const auto found_target = queues_.find(its_target); - if (found_target != queues_.end()) { - found_target->second.clear(); + std::lock_guard<std::mutex> its_lock(connections_mutex_); + for (auto it = connections_.begin(); it != connections_.end();) { + if (it->second.get() == _connection) { + it = connections_.erase(it); + break; + } else { + ++it; } } } |