mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed a possible crash in case the SVDRP connection to a peer VDR is terminated while getting remote timers
This commit is contained in:
parent
f97a59597f
commit
bae02358a3
4
HISTORY
4
HISTORY
@ -9056,7 +9056,7 @@ Video Disk Recorder Revision History
|
||||
- Fixed detecting the inclusion of STL header files in tools.h (thanks to Jasmin
|
||||
Jessich).
|
||||
|
||||
2017-05-30: Version 2.3.6
|
||||
2017-05-31: Version 2.3.6
|
||||
|
||||
- Added debug output for checking the correct sequence of locking global lists
|
||||
(with help and suggestions from Jasmin Jessich). To activate this, define the
|
||||
@ -9087,3 +9087,5 @@ Video Disk Recorder Revision History
|
||||
- Now using a separate mutex to fix the race between SVDRP CHAN and
|
||||
cDevice::HasProgramme(), because the previous fix caused a deadlock (reported by
|
||||
Derek Kelly).
|
||||
- Fixed a possible crash in case the SVDRP connection to a peer VDR is terminated
|
||||
while getting remote timers.
|
||||
|
6
svdrp.c
6
svdrp.c
@ -10,7 +10,7 @@
|
||||
* and interact with the Video Disk Recorder - or write a full featured
|
||||
* graphical interface that sits on top of an SVDRP connection.
|
||||
*
|
||||
* $Id: svdrp.c 4.19 2017/05/28 13:05:23 kls Exp $
|
||||
* $Id: svdrp.c 4.20 2017/05/31 14:02:17 kls Exp $
|
||||
*/
|
||||
|
||||
#include "svdrp.h"
|
||||
@ -385,7 +385,8 @@ void cSVDRPClient::Close(void)
|
||||
file.Close();
|
||||
socket.Close();
|
||||
LOCK_TIMERS_WRITE;
|
||||
Timers->DelRemoteTimers(serverName);
|
||||
if (Timers)
|
||||
Timers->DelRemoteTimers(serverName);
|
||||
}
|
||||
}
|
||||
|
||||
@ -463,6 +464,7 @@ bool cSVDRPClient::Process(cStringList *Response)
|
||||
else if (r <= 0) {
|
||||
isyslog("SVDRP < %s lost connection to remote server '%s'", ipAddress.Connection(), *serverName);
|
||||
Close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!Response)
|
||||
|
Loading…
Reference in New Issue
Block a user