1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

The file 'cam.data' is no longer written if it is read-only

This commit is contained in:
Klaus Schmidinger 2017-04-02 10:06:31 +02:00
parent 8d3ae53bcd
commit f39d31631b
2 changed files with 10 additions and 2 deletions

View File

@ -8925,7 +8925,7 @@ Video Disk Recorder Revision History
- Now stopping any ongoing recordings before stopping the plugins, to avoid - Now stopping any ongoing recordings before stopping the plugins, to avoid
a crash when stopping VDR while recording. a crash when stopping VDR while recording.
2017-04-01: Version 2.3.4 2017-04-02: Version 2.3.4
- The functionality of HandleRemoteModifications(), which synchronizes changes to - The functionality of HandleRemoteModifications(), which synchronizes changes to
timers between peer VDR machines, has been moved to timers.[ch] and renamed to timers between peer VDR machines, has been moved to timers.[ch] and renamed to
@ -8937,3 +8937,4 @@ Video Disk Recorder Revision History
"event id" in vdr.5 explicitly mentioned this parameter to be 32 bit in size! "event id" in vdr.5 explicitly mentioned this parameter to be 32 bit in size!
The members of cEvent have been slightly rearranged to minimize the memory The members of cEvent have been slightly rearranged to minimize the memory
requirements on both 32 and 64 bit systems. requirements on both 32 and 64 bit systems.
- The file 'cam.data' is no longer written if it is read-only.

9
ci.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: ci.c 4.9 2017/03/25 14:09:23 kls Exp $ * $Id: ci.c 4.10 2017/04/02 10:02:13 kls Exp $
*/ */
#include "ci.h" #include "ci.h"
@ -2663,6 +2663,13 @@ void cChannelCamRelations::Load(const char *FileName)
void cChannelCamRelations::Save(void) void cChannelCamRelations::Save(void)
{ {
cMutexLock MutexLock(&mutex); cMutexLock MutexLock(&mutex);
struct stat st;
if (stat(fileName, &st) == 0) {
if ((st.st_mode & S_IWUSR) == 0) {
dsyslog("not saving %s (file is read-only)", *fileName);
return;
}
}
dsyslog("saving %s", *fileName); dsyslog("saving %s", *fileName);
cSafeFile f(fileName); cSafeFile f(fileName);
if (f.Open()) { if (f.Open()) {