]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2936] Handle rare relocation
authorMichal 'vorner' Vaner <michal.vaner@nic.cz>
Thu, 16 May 2013 14:18:24 +0000 (16:18 +0200)
committerMichal 'vorner' Vaner <michal.vaner@nic.cz>
Thu, 16 May 2013 14:18:24 +0000 (16:18 +0200)
src/lib/datasrc/memory/zone_data_updater.h

index d802234fa2060024532dff026e4abfa5e3190612..43da9f9897f0c1724d06fab29478c70f9efcefae 100644 (file)
@@ -80,7 +80,13 @@ public:
             isc_throw(isc::InvalidOperation, "A ZoneDataUpdater already exists"
                       " on this memory segment. Destroy it first.");
         }
-        mem_sgmt_.setNamedAddress("updater_zone_data", zone_data_);
+        if (mem_sgmt_.setNamedAddress("updater_zone_data", zone_data_)) {
+            // It might have relocated during the set
+            zone_data_ =
+                static_cast<ZoneData*>(mem_sgmt_.getNamedAddress("updater_zone_data").
+                                       second);
+        }
+        assert(zone_data_);
     }
 
     /// The destructor.