From 1e74f596b238358fe0b348208d4ef714ce5dd9f2 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 12 Feb 2012 15:45:59 +0100 Subject: [PATCH] Fixed a possible crash when canceling VDR while displaying subtitles, and the primary device is no longer available --- HISTORY | 2 ++ device.c | 5 +++-- dvbdevice.c | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/HISTORY b/HISTORY index fe486796..54e72a0d 100644 --- a/HISTORY +++ b/HISTORY @@ -6855,3 +6855,5 @@ Video Disk Recorder Revision History faster in case the file is very large (suggested by Helmut Auer). - Fixed selecting the primary device for receiving the live viewing channel in case it is bonded with an other device and has no receiver attached to it. +- Fixed a possible crash when canceling VDR while displaying subtitles, and the + primary device is no longer available. diff --git a/device.c b/device.c index 714668db..5ffc28d1 100644 --- a/device.c +++ b/device.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: device.c 2.46 2012/01/18 10:43:00 kls Exp $ + * $Id: device.c 2.47 2012/02/12 15:44:06 kls Exp $ */ #include "device.h" @@ -41,7 +41,8 @@ cLiveSubtitle::~cLiveSubtitle() void cLiveSubtitle::Receive(uchar *Data, int Length) { - cDevice::PrimaryDevice()->PlayTs(Data, Length); + if (cDevice::PrimaryDevice()) + cDevice::PrimaryDevice()->PlayTs(Data, Length); } // --- cDeviceHook ----------------------------------------------------------- diff --git a/dvbdevice.c b/dvbdevice.c index 2966ef33..ca522e8b 100644 --- a/dvbdevice.c +++ b/dvbdevice.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbdevice.c 2.60 2012/02/12 12:38:49 kls Exp $ + * $Id: dvbdevice.c 2.61 2012/02/12 15:45:10 kls Exp $ */ #include "dvbdevice.h" @@ -1008,6 +1008,7 @@ cDvbDevice::cDvbDevice(int Adapter, int Frontend) numModulations = 0; bondedDevice = NULL; needsDetachBondedReceivers = false; + tsBuffer = NULL; // Devices that are present on all card types: