mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 23:42:58 +02:00
eitd/sectionsd.cpp void addEven: crash fix, do not use iterator without locking
This commit is contained in:
@@ -453,7 +453,7 @@ xprintf("addEvent: ch %012" PRIx64 " running %d (%s) got_CN %d\n", evt.get_chann
|
|||||||
}
|
}
|
||||||
deleteEvent(e->uniqueKey());
|
deleteEvent(e->uniqueKey());
|
||||||
readLockEvents();
|
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::iterator lastEvent =
|
||||||
mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.begin();
|
mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.begin();
|
||||||
|
|
||||||
@@ -464,7 +464,7 @@ xprintf("addEvent: ch %012" PRIx64 " running %d (%s) got_CN %d\n", evt.get_chann
|
|||||||
#else
|
#else
|
||||||
time_t now = time(NULL);
|
time_t now = time(NULL);
|
||||||
bool back = false;
|
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)
|
if ((*lastEvent)->times.begin()->startzeit + (long)(*lastEvent)->times.begin()->dauer >= now - oldEventsAre)
|
||||||
back = true;
|
back = true;
|
||||||
@@ -485,10 +485,10 @@ xprintf("addEvent: ch %012" PRIx64 " running %d (%s) got_CN %d\n", evt.get_chann
|
|||||||
}
|
}
|
||||||
unlockMessaging();
|
unlockMessaging();
|
||||||
}
|
}
|
||||||
|
event_id_t uniqueKey = (*lastEvent)->uniqueKey();
|
||||||
// else fprintf(stderr, ">");
|
// else fprintf(stderr, ">");
|
||||||
unlockEvents();
|
unlockEvents();
|
||||||
if(*lastEvent!=NULL)
|
deleteEvent(uniqueKey);
|
||||||
deleteEvent((*lastEvent)->uniqueKey());
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
unlockEvents();
|
unlockEvents();
|
||||||
|
Reference in New Issue
Block a user