mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed a crash in removing recordings
This commit is contained in:
		| @@ -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: recording.c 1.128 2005/12/18 13:09:47 kls Exp $ |  * $Id: recording.c 1.129 2005/12/18 13:38:30 kls Exp $ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #include "recording.h" | #include "recording.h" | ||||||
| @@ -67,16 +67,20 @@ void RemoveDeletedRecordings(void) | |||||||
|   static time_t LastRemoveCheck = 0; |   static time_t LastRemoveCheck = 0; | ||||||
|   if (time(NULL) - LastRemoveCheck > REMOVECHECKDELTA) { |   if (time(NULL) - LastRemoveCheck > REMOVECHECKDELTA) { | ||||||
|      cThreadLock DeletedRecordingsLock(&DeletedRecordings); |      cThreadLock DeletedRecordingsLock(&DeletedRecordings); | ||||||
|      for (cRecording *r = DeletedRecordings.First(); r; r = DeletedRecordings.Next(r)) { |      for (cRecording *r = DeletedRecordings.First(); r; ) { | ||||||
|          if (r->deleted && time(NULL) - r->deleted > DELETEDLIFETIME) { |          if (r->deleted && time(NULL) - r->deleted > DELETEDLIFETIME) { | ||||||
|             // Make sure only one instance of VDR does this: |             // Make sure only one instance of VDR does this: | ||||||
|             cLockFile LockFile(VideoDirectory); |             cLockFile LockFile(VideoDirectory); | ||||||
|             if (LockFile.Lock()) { |             if (LockFile.Lock()) { | ||||||
|  |                cRecording *next = DeletedRecordings.Next(r); | ||||||
|                r->Remove(); |                r->Remove(); | ||||||
|                DeletedRecordings.Del(r); |                DeletedRecordings.Del(r); | ||||||
|  |                r = next; | ||||||
|                RemoveEmptyVideoDirectories(); |                RemoveEmptyVideoDirectories(); | ||||||
|  |                continue; | ||||||
|                } |                } | ||||||
|             } |             } | ||||||
|  |          r = DeletedRecordings.Next(r); | ||||||
|          } |          } | ||||||
|      LastRemoveCheck = time(NULL); |      LastRemoveCheck = time(NULL); | ||||||
|      } |      } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user