Fixed a possible crash in case a VFAT file system is used without compiling VDR with VFAT=1

This commit is contained in:
Klaus Schmidinger 2003-08-02 13:23:58 +02:00
parent 44992533f0
commit 746b232299
4 changed files with 20 additions and 17 deletions

View File

@ -738,3 +738,7 @@ Thomas Keil <tk@commedia-group.com>
Kenneth Aafløy <ke-aa@frisurf.no>
for fixing checking CA capabilities with the dvb-kernel driver
Ernst Fürst <ernstfuerst@swissonline.ch>
for reporting a crash in case a VFAT file system is used without compiling VDR
with VFAT=1

View File

@ -2277,3 +2277,5 @@ Video Disk Recorder Revision History
Aafløy).
- Fixed selecting the device, because sometimes an FTA recording terminated a
CA recording (thanks to Emil Naepflein).
- Fixed a possible crash in case a VFAT file system is used without compiling VDR
with VFAT=1 (thanks to Ernst Fürst for reporting this one).

23
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 1.262 2003/07/26 16:10:39 kls Exp $
* $Id: menu.c 1.263 2003/08/02 13:23:58 kls Exp $
*/
#include "menu.h"
@ -2993,16 +2993,19 @@ cRecordControl::cRecordControl(cDevice *Device, cTimer *Timer, bool Pause)
}
cRecordingUserCommand::InvokeCommand(RUC_BEFORERECORDING, fileName);
const cChannel *ch = timer->Channel();
recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2());
if (device->AttachReceiver(recorder)) {
Recording.WriteSummary();
cStatus::MsgRecording(device, Recording.Name());
if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
cReplayControl::SetRecording(fileName, Recording.Name());
isyslog("record %s", fileName);
if (MakeDirs(fileName, true)) {
const cChannel *ch = timer->Channel();
recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2());
if (device->AttachReceiver(recorder)) {
Recording.WriteSummary();
cStatus::MsgRecording(device, Recording.Name());
if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
cReplayControl::SetRecording(fileName, Recording.Name());
}
else
DELETENULL(recorder);
}
else
DELETENULL(recorder);
}
cRecordControl::~cRecordControl()

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recorder.c 1.6 2003/05/16 13:33:04 kls Exp $
* $Id: recorder.c 1.7 2003/08/02 13:01:19 kls Exp $
*/
#include <stdarg.h>
@ -34,12 +34,6 @@ cRecorder::cRecorder(const char *FileName, int Ca, int Priority, int VPid, int A
fileSize = 0;
active = false;
lastDiskSpaceCheck = time(NULL);
isyslog("record %s", FileName);
// Create directories if necessary:
if (!MakeDirs(FileName, true))
return;
// Make sure the disk is up and running: