summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschmirl <schmirl>2010-02-20 23:02:10 +0000
committerschmirl <schmirl>2010-02-20 23:02:10 +0000
commit8a128f7c57fd168231798c53f890af2c1acf6492 (patch)
treec75c12424344602584274798a7259ab1ddbb4e8d
parent2f027a6ffc2096fb612e5c6d92993539002c3232 (diff)
downloadvdr-plugin-streamdev-8a128f7c57fd168231798c53f890af2c1acf6492.tar.gz
vdr-plugin-streamdev-8a128f7c57fd168231798c53f890af2c1acf6492.tar.bz2
fixed a memory leak in cStreamdevPatFilter::GetPid (thanks to lhanisch)
-rw-r--r--CONTRIBUTORS3
-rw-r--r--HISTORY1
-rw-r--r--server/livestreamer.c4
3 files changed, 8 insertions, 0 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 075fa03..33141a7 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -139,3 +139,6 @@ Valdemaras Pipiras
sk8ter
for fixing failures when switching between two encrypted channels
+
+lhanisch
+ for fixing a memory leak in cStreamdevPatFilter::GetPid
diff --git a/HISTORY b/HISTORY
index 4e83590..c4fe3b7 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,6 +1,7 @@
VDR Plugin 'streamdev' Revision History
---------------------------------------
+- fixed a memory leak in cStreamdevPatFilter::GetPid (thanks to lhanisch)
- length -1 is the correct value for streams in M3U playlists
- switching between two encrypted channels on the same transponder didn't
always work (thanks to sk8ter@vdrportal)
diff --git a/server/livestreamer.c b/server/livestreamer.c
index 7642f5f..3162fa2 100644
--- a/server/livestreamer.c
+++ b/server/livestreamer.c
@@ -174,14 +174,17 @@ int cStreamdevPatFilter::GetPid(SI::PMT::Stream& stream)
case SI::AC3DescriptorTag:
Dprintf("cStreamdevPatFilter PMT scanner: adding PID %d (%s) %s\n",
stream.getPid(), psStreamTypes[stream.getStreamType()], "AC3");
+ delete d;
return stream.getPid();
case SI::TeletextDescriptorTag:
Dprintf("cStreamdevPatFilter PMT scanner: adding PID %d (%s) %s\n",
stream.getPid(), psStreamTypes[stream.getStreamType()], "Teletext");
+ delete d;
return stream.getPid();
case SI::SubtitlingDescriptorTag:
Dprintf("cStreamdevPatFilter PMT scanner: adding PID %d (%s) %s\n",
stream.getPid(), psStreamTypes[stream.getStreamType()], "DVBSUB");
+ delete d;
return stream.getPid();
default:
Dprintf("cStreamdevPatFilter PMT scanner: NOT adding PID %d (%s) %s\n",
@@ -214,6 +217,7 @@ int cStreamdevPatFilter::GetPid(SI::PMT::Stream& stream)
stream.getPid(), stream.getStreamType(),
d->getLength(), rawdata[2], rawdata[3],
rawdata[4], rawdata[5]);
+ delete d;
return stream.getPid();
}
}