diff options
3 files changed, 30 insertions, 21 deletions
diff --git a/src/components/application_manager/src/commands/command_request_impl.cc b/src/components/application_manager/src/commands/command_request_impl.cc index d8f14fa844..1c966ef4dc 100644 --- a/src/components/application_manager/src/commands/command_request_impl.cc +++ b/src/components/application_manager/src/commands/command_request_impl.cc @@ -562,12 +562,11 @@ void CommandRequestImpl::RemoveDisallowedParameters() { parameters_permissions_.disallowed_params.end(); for (; it_disallowed != it_disallowed_end; ++it_disallowed) { if (params.keyExists(*it_disallowed)) { - params.erase(*it_disallowed); - removed_parameters_permissions_.disallowed_params.push_back( - *it_disallowed); - LOG4CXX_INFO( - logger_, - "Following parameter is disallowed by user: " << *it_disallowed); + const std::string key = *it_disallowed; + params.erase(key); + removed_parameters_permissions_.disallowed_params.push_back(key); + LOG4CXX_INFO(logger_, + "Following parameter is disallowed by user: " << key); } } @@ -578,11 +577,11 @@ void CommandRequestImpl::RemoveDisallowedParameters() { parameters_permissions_.undefined_params.end(); for (; it_undefined != it_undefined_end; ++it_undefined) { if (params.keyExists(*it_undefined)) { - params.erase(*it_undefined); - removed_parameters_permissions_.undefined_params.push_back(*it_undefined); - LOG4CXX_INFO( - logger_, - "Following parameter is disallowed by policy: " << *it_undefined); + const std::string key = *it_undefined; + params.erase(key); + removed_parameters_permissions_.undefined_params.push_back(key); + LOG4CXX_INFO(logger_, + "Following parameter is disallowed by policy: " << key); } } diff --git a/src/components/config_profile/src/ini_file.cc b/src/components/config_profile/src/ini_file.cc index d6d72060e8..1c30c8b201 100644 --- a/src/components/config_profile/src/ini_file.cc +++ b/src/components/config_profile/src/ini_file.cc @@ -188,15 +188,18 @@ char ini_write_value(const char* fname, fd = mkstemp(temp_fname); if (-1 == fd) { + fclose(rd_fp); return FALSE; } wr_fp = fdopen(fd, "w"); if (NULL == wr_fp) { unlink(temp_fname); close(fd); + fclose(rd_fp); return FALSE; } } else { + fclose(rd_fp); return FALSE; } } diff --git a/src/components/transport_manager/src/transport_manager_impl.cc b/src/components/transport_manager/src/transport_manager_impl.cc index 8a4b01ad85..b3b9f89639 100644 --- a/src/components/transport_manager/src/transport_manager_impl.cc +++ b/src/components/transport_manager/src/transport_manager_impl.cc @@ -618,22 +618,29 @@ void TransportManagerImpl::AddConnection(const ConnectionInternal& c) { connections_.push_back(c); } +namespace { +struct ConnectionFinder { + const uint32_t id_; + ConnectionFinder(const uint32_t id) : id_(id) {} + bool operator()(const transport_manager::TransportManagerImpl::Connection& + connection) const { + return id_ == connection.id; + } +}; +} + void TransportManagerImpl::RemoveConnection( const uint32_t id, transport_adapter::TransportAdapter* transport_adapter) { LOG4CXX_AUTO_TRACE(logger_); LOG4CXX_DEBUG(logger_, "Id: " << id); sync_primitives::AutoWriteLock lock(connections_lock_); - for (std::vector<ConnectionInternal>::iterator it = connections_.begin(); - it != connections_.end(); - ++it) { - if (it->id == id) { - connections_.erase(it); - if (transport_adapter) { - transport_adapter->RemoveFinalizedConnection(it->device, - it->application); - } - break; + const std::vector<ConnectionInternal>::iterator it = std::find_if( + connections_.begin(), connections_.end(), ConnectionFinder(id)); + if (connections_.end() != it) { + if (transport_adapter) { + transport_adapter->RemoveFinalizedConnection(it->device, it->application); } + connections_.erase(it); } } |