From bd44d730cc125230c7abb3946a51b438ecc1cbf6 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Wed, 24 Sep 2008 02:20:13 +0000 Subject: [PATCH] fixed bug in nat-pmp where it could access an out-of-bound vector element on shutdown --- src/natpmp.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/natpmp.cpp b/src/natpmp.cpp index 878cc6fbf..b183d1d22 100644 --- a/src/natpmp.cpp +++ b/src/natpmp.cpp @@ -226,6 +226,20 @@ void natpmp::try_next_mapping(int i) void natpmp::update_mapping(int i) { + if (i == m_mappings.size()) + { + if (m_abort) + { + error_code ec; + m_send_timer.cancel(ec); + m_socket.close(ec); + } +#if defined(TORRENT_LOGGING) || defined(TORRENT_VERBOSE_LOGGING) + m_log << " done" << (m_abort?" shutting down":"") << std::endl; +#endif + return; + } + natpmp::mapping_t& m = m_mappings[i]; if (m.action == mapping_t::action_none || m.protocol == none)