From eeed514c75a76941fd9944d8458600a41508471f Mon Sep 17 00:00:00 2001 From: HanzZ Date: Tue, 19 Feb 2013 07:06:52 +0100 Subject: [PATCH] Libtransport: Fix uint underflow when reporting average memory usage --- src/admininterface.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/admininterface.cpp b/src/admininterface.cpp index d8591c18..d961a0a3 100644 --- a/src/admininterface.cpp +++ b/src/admininterface.cpp @@ -176,7 +176,9 @@ void AdminInterface::handleQuery(Swift::Message::ref message) { unsigned long per_user = 0; const std::list &backends = m_server->getBackends(); BOOST_FOREACH(NetworkPluginServer::Backend * backend, backends) { - per_user += (backend->res - backend->init_res); + if (backend->res >= backend->init_res) { + per_user += (backend->res - backend->init_res); + } } message->setBody(boost::lexical_cast(per_user / m_userManager->getUserCount())); @@ -220,7 +222,7 @@ void AdminInterface::handleQuery(Swift::Message::ref message) { int id = 1; const std::list &backends = m_server->getBackends(); BOOST_FOREACH(NetworkPluginServer::Backend * backend, backends) { - if (backend->users.size() == 0) { + if (backend->users.size() == 0 || backend->res < backend->init_res) { lst += "Backend " + boost::lexical_cast(id) + " (ID=" + backend->id + "): 0\n"; } else {