From: Danny Al-Gaaf Date: Mon, 18 Mar 2013 13:08:22 +0000 (+0100) Subject: auth/AuthMethodList.cc: fix remove_supported_auth() X-Git-Tag: v0.60~44^2~21 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c091dcc0d795b12cdca6a040051cb3f7dfbd6981;p=ceph.git 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 --- diff --git a/src/auth/AuthMethodList.cc b/src/auth/AuthMethodList.cc index e345e150549e..50d58bff4d49 100644 --- a/src/auth/AuthMethodList.cc +++ b/src/auth/AuthMethodList.cc @@ -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; } }