]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix naughty iterator usage after invalidating it
authorGreg Farnum <gregf@hq.newdream.net>
Fri, 4 Jun 2010 19:55:27 +0000 (12:55 -0700)
committerGreg Farnum <gregf@hq.newdream.net>
Fri, 4 Jun 2010 19:55:27 +0000 (12:55 -0700)
src/osd/OSD.h

index 2501d37d2c7b37a68f9a0a47f73eeeca4b2f7369..b15478b4dd5e07a1ceafc83d7ffc683e4edf7429 100644 (file)
@@ -884,9 +884,10 @@ protected:
   void filter_xattrs(map<string, bufferptr>& attrs) {
     for (map<string, bufferptr>::iterator iter = attrs.begin();
         iter != attrs.end();
-        ++iter) {
+        ) {
       if (('_' != iter->first.at(0)) || (iter->first.size() == 1))
-       attrs.erase(iter);
+       attrs.erase(iter++);
+      else ++iter;
     }
   }