From f1028f0d1662bb1ebdd6d6af19a71c67d2e3a4c2 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 9 Apr 2014 16:57:56 +0200 Subject: [PATCH] eitd/sectionsd.cpp void addEven: crash fix, do not use iterator without locking --- src/eitd/sectionsd.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/eitd/sectionsd.cpp b/src/eitd/sectionsd.cpp index 81f1e8646..d4121cb72 100644 --- a/src/eitd/sectionsd.cpp +++ b/src/eitd/sectionsd.cpp @@ -453,7 +453,7 @@ xprintf("addEvent: ch %012" PRIx64 " running %d (%s) got_CN %d\n", evt.get_chann } deleteEvent(e->uniqueKey()); readLockEvents(); - if ( !mySIeventsOrderUniqueKey.empty() && mySIeventsOrderUniqueKey.size() >= max_events && max_events != 0 ) { + if ( !mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.empty() && mySIeventsOrderUniqueKey.size() >= max_events && max_events != 0 ) { MySIeventsOrderFirstEndTimeServiceIDEventUniqueKey::iterator lastEvent = mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.begin(); @@ -464,7 +464,7 @@ xprintf("addEvent: ch %012" PRIx64 " running %d (%s) got_CN %d\n", evt.get_chann #else time_t now = time(NULL); bool back = false; - if (*lastEvent!=NULL && (*lastEvent)->times.size() == 1) + if ((*lastEvent)->times.size() == 1) { if ((*lastEvent)->times.begin()->startzeit + (long)(*lastEvent)->times.begin()->dauer >= now - oldEventsAre) back = true; @@ -485,10 +485,10 @@ xprintf("addEvent: ch %012" PRIx64 " running %d (%s) got_CN %d\n", evt.get_chann } unlockMessaging(); } + event_id_t uniqueKey = (*lastEvent)->uniqueKey(); // else fprintf(stderr, ">"); unlockEvents(); - if(*lastEvent!=NULL) - deleteEvent((*lastEvent)->uniqueKey()); + deleteEvent(uniqueKey); } else unlockEvents();