From 56468f72ad2b2bd5a5adc4b6980949d077ec2238 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 29 Apr 2006 11:40:37 +0200 Subject: [PATCH] Fixed a memory leak in handling external EPG data --- CONTRIBUTORS | 1 + HISTORY | 1 + eit.c | 6 ++++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 946faef4..0f82d14e 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1863,6 +1863,7 @@ Richard Lithvall Tobias Grimm for suggesting to use geteuid() to check whether VDR is running as user 'root' + for fixing a memory leak in handling external EPG data Helge Lenz for reporting a bug in setting the 'Delta' parameter when calling the shutdown diff --git a/HISTORY b/HISTORY index 2eeb5d0e..ca596c7e 100644 --- a/HISTORY +++ b/HISTORY @@ -4683,3 +4683,4 @@ Video Disk Recorder Revision History - Fixed handling the "Power" key in case a recording is going on and no plugin is active (thanks to Udo Richter; bug reported by Dominique Simon). - Updated the Polish OSD texts (thanks to Jaroslaw Swierczynski). +- Fixed a memory leak in handling external EPG data (thanks to Tobias Grimm). diff --git a/eit.c b/eit.c index c33dbefc..39567f8c 100644 --- a/eit.c +++ b/eit.c @@ -8,7 +8,7 @@ * Robert Schneider and Rolf Hakenes . * Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg . * - * $Id: eit.c 1.116 2006/04/15 14:11:52 kls Exp $ + * $Id: eit.c 1.117 2006/04/29 11:38:37 kls Exp $ */ #include "eit.h" @@ -103,8 +103,10 @@ cEIT::cEIT(cSchedules *Schedules, int Source, u_char Tid, const u_char *Data) cLinkChannels *LinkChannels = NULL; cComponents *Components = NULL; for (SI::Loop::Iterator it2; (d = SiEitEvent.eventDescriptors.getNext(it2)); ) { - if (ExternalData && d->getDescriptorTag() != SI::ComponentDescriptorTag) + if (ExternalData && d->getDescriptorTag() != SI::ComponentDescriptorTag) { + delete d; continue; + } switch (d->getDescriptorTag()) { case SI::ExtendedEventDescriptorTag: { SI::ExtendedEventDescriptor *eed = (SI::ExtendedEventDescriptor *)d;