From db1028c2ec19fd84366663b1384888dd33241202 Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Sun, 29 Oct 2017 17:20:51 +0000 Subject: [PATCH setup] Fix invalid iterator use in packagedb::removeEmptyCategories() --- package_db.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/package_db.cc b/package_db.cc index 4d2ef4d..9de0875 100644 --- a/package_db.cc +++ b/package_db.cc @@ -593,13 +593,22 @@ packagedb::defaultTrust (SolverTasks &q, SolverSolution::updateMode mode, bool t void packagedb::removeEmptyCategories() { + std::vector empty; + for (packagedb::categoriesType::iterator n = packagedb::categories.begin(); n != packagedb::categories.end(); ++n) if (!n->second.size()) { - Log (LOG_BABBLE) << "Removing empty category " << n->first << endLog; - packagedb::categories.erase (n++); + empty.push_back(n->first); } + + for (unsigned int i = 0; i < empty.size(); ++i) + { + packagedb::categoriesType::iterator n = packagedb::categories.find(empty[i]); + Log (LOG_BABBLE) << "Removing empty category " << empty[i] << endLog; + if (n != packagedb::categories.end()) + packagedb::categories.erase(n); + } } void -- 2.14.3