mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed a crash after executing the SVDRP command CLRE, caused by dangling 'schedule' pointers from cChannel objects
This commit is contained in:
parent
ef385702d0
commit
cd09f7a0df
@ -1667,3 +1667,6 @@ Francois-Xavier Kowalski <francois-xavier.kowalski@hp.com>
|
|||||||
Franz Gangkofer <Franz.Gangkofer@cadsoft.de>
|
Franz Gangkofer <Franz.Gangkofer@cadsoft.de>
|
||||||
for reporting a problem with @plugin in keymacros.conf in case the named plugin
|
for reporting a problem with @plugin in keymacros.conf in case the named plugin
|
||||||
is not loaded
|
is not loaded
|
||||||
|
|
||||||
|
Malte Schröder <MalteSch@gmx.de>
|
||||||
|
for reporting a crash after executing the SVDRP command CLRE
|
||||||
|
2
HISTORY
2
HISTORY
@ -4198,3 +4198,5 @@ Video Disk Recorder Revision History
|
|||||||
the individual thread's pid (based on a suggestion from Francois-Xavier Kowalski).
|
the individual thread's pid (based on a suggestion from Francois-Xavier Kowalski).
|
||||||
- Fixed a problem with @plugin in keymacros.conf in case the named plugin is not
|
- Fixed a problem with @plugin in keymacros.conf in case the named plugin is not
|
||||||
loaded (reported by Franz Gangkofer).
|
loaded (reported by Franz Gangkofer).
|
||||||
|
- Fixed a crash after executing the SVDRP command CLRE, caused by dangling 'schedule'
|
||||||
|
pointers from cChannel objects (reported by Malte Schröder).
|
||||||
|
7
epg.c
7
epg.c
@ -7,7 +7,7 @@
|
|||||||
* Original version (as used in VDR before 1.3.0) written by
|
* Original version (as used in VDR before 1.3.0) written by
|
||||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
||||||
*
|
*
|
||||||
* $Id: epg.c 1.49 2006/01/15 13:58:30 kls Exp $
|
* $Id: epg.c 1.50 2006/01/20 13:42:38 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "epg.h"
|
#include "epg.h"
|
||||||
@ -935,7 +935,10 @@ bool cSchedules::ClearAll(void)
|
|||||||
cSchedulesLock SchedulesLock(true, 1000);
|
cSchedulesLock SchedulesLock(true, 1000);
|
||||||
cSchedules *s = (cSchedules *)Schedules(SchedulesLock);
|
cSchedules *s = (cSchedules *)Schedules(SchedulesLock);
|
||||||
if (s) {
|
if (s) {
|
||||||
s->Clear();
|
for (cTimer *Timer = Timers.First(); Timer; Timer = Timers.Next(Timer))
|
||||||
|
Timer->SetEvent(NULL);
|
||||||
|
for (cSchedule *Schedule = s->First(); Schedule; Schedule = s->Next(Schedule))
|
||||||
|
Schedule->Cleanup(INT_MAX);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user