auth/AuthMethodList.cc: fix remove_supported_auth()

Make sure the iterator isn't incremented twice if a element gets erased.
Move increment out of the for-loop header and add it to a new else block.

Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
This commit is contained in:
Danny Al-Gaaf 2013-03-18 14:08:22 +01:00
parent a96a1cc5f1
commit c091dcc0d7

View File

@ -59,8 +59,10 @@ int AuthMethodList::pick(const std::set<__u32>& supported)
void AuthMethodList::remove_supported_auth(int auth_type)
{
for (list<__u32>::iterator p = auth_supported.begin(); p != auth_supported.end(); ++p) {
for (list<__u32>::iterator p = auth_supported.begin(); p != auth_supported.end(); ) {
if (*p == (__u32)auth_type)
auth_supported.erase(p++);
else
++p;
}
}