# # patch "ChangeLog" # from [46d9833f18fd069bb84c73e52bdb213eee9b8049] # to [62849fc5365d13a37008da533fbda5b92f92fbd9] # # patch "revision.cc" # from [5a02450e4801bc630e837aa9726cfb4d36b2e3a6] # to [278be7ae9f1e835cf402808d651e5a1d1a49d72f] # ======================================================================== --- ChangeLog 46d9833f18fd069bb84c73e52bdb213eee9b8049 +++ ChangeLog 62849fc5365d13a37008da533fbda5b92f92fbd9 @@ -1,3 +1,9 @@ +2005-08-30 Matthew Gregan + + * revision.cc (ensure_parents_loaded): Don't reuse an iterator + after we've invalidated it. Fixes 'diff' crash reported by Howard + Spindel. + 2005-08-30 Matt Johnston * botan/allocate.cpp: avoid string comparison when looking up the ======================================================================== --- revision.cc 5a02450e4801bc630e837aa9726cfb4d36b2e3a6 +++ revision.cc 278be7ae9f1e835cf402808d651e5a1d1a49d72f @@ -315,10 +315,12 @@ // The null revision is not a parent for purposes of finding common // ancestors. for (std::set::iterator p = imm_parents.begin(); - p != imm_parents.end(); ++p) + p != imm_parents.end(); ) { if (null_id(*p)) - imm_parents.erase(p); + imm_parents.erase(p++); + else + ++p; } shared_bitmap bits = shared_bitmap(new bitmap(parents.size()));