Browse Source

[2107] fixed a use-after-free bug in rdataSetDeleter.

JINMEI Tatuya 12 years ago
parent
commit
8c9a5e0ce9
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/lib/datasrc/memory/zone_data.cc

+ 4 - 1
src/lib/datasrc/memory/zone_data.cc

@@ -42,9 +42,12 @@ void
 rdataSetDeleter(RRClass rrclass, util::MemorySegment* mem_sgmt,
                 RdataSet* rdataset_head)
 {
+    RdataSet* rdataset_next;
     for (RdataSet* rdataset = rdataset_head;
          rdataset != NULL;
-         rdataset = rdataset->getNext()) {
+         rdataset = rdataset_next)
+    {
+        rdataset_next = rdataset->getNext();
         RdataSet::destroy(*mem_sgmt, rrclass, rdataset);
     }
 }