From dfb2c2b031bbae0cf1fc10631ce07dc0b0de4209 Mon Sep 17 00:00:00 2001 From: kamel5 Date: Sat, 30 Mar 2019 16:49:50 +0100 Subject: Eliminate a seqfault in cRecManager::DeleteSearchTimer --- recmanager.c | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/recmanager.c b/recmanager.c index c09d25a..f152bf5 100644 --- a/recmanager.c +++ b/recmanager.c @@ -543,45 +543,33 @@ void cRecManager::DeleteSearchTimer(cTVGuideSearchTimer *searchTimer, bool delTi return; int searchTimerID = searchTimer->GetID(); if (delTimers) { + cTimers* timers; #if VDRVERSNUM >= 20301 + { LOCK_TIMERS_WRITE; - cTimer *timer = Timers->First(); + timers = Timers; + } #else - cTimer *timer = Timers.First(); + timers = &Timers; #endif + cTimer *timer = timers->First(); while(timer) { if (!timer->Recording()) { char* searchID = GetAuxValue(timer, "s-id"); if (searchID) { if (searchTimerID == atoi(searchID)) { -#if VDRVERSNUM >= 20301 - cTimer* timerNext = Timers->Next(timer); -#else - cTimer* timerNext = Timers.Next(timer); -#endif + cTimer* timerNext = timers->Next(timer); DeleteTimer(timer); timer = timerNext; } else { -#if VDRVERSNUM >= 20301 - timer = Timers->Next(timer); -#else - timer = Timers.Next(timer); -#endif + timer = timers->Next(timer); } free(searchID); } else { -#if VDRVERSNUM >= 20301 - timer = Timers->Next(timer); -#else - timer = Timers.Next(timer); -#endif + timer = timers->Next(timer); } } else { -#if VDRVERSNUM >= 20301 - timer = Timers->Next(timer); -#else - timer = Timers.Next(timer); -#endif + timer = timers->Next(timer); } } } -- cgit v1.2.3