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

Fixed a crash in the SVDRP command CLRE in case a non-existing channel number is given

This commit is contained in:
Klaus Schmidinger 2021-01-01 21:23:00 +01:00
parent 40ca081ff4
commit 3f3e47d280
3 changed files with 9 additions and 3 deletions

View File

@ -2938,6 +2938,8 @@ Manuel Reimer <Manuel.Reimer@gmx.de>
for reporting a bug in moving channels between number groups in SVDRP's MOVC command for reporting a bug in moving channels between number groups in SVDRP's MOVC command
for fixing compatibility with current versions of glibc for fixing compatibility with current versions of glibc
for suggesting to make the SVDRP command DELC accept a channel id for suggesting to make the SVDRP command DELC accept a channel id
for reporting a crash in the SVDRP command CLRE in case a non-existing channel
number is given
Rene van den Braken <rene@vandenbraken.name> Rene van den Braken <rene@vandenbraken.name>
for reporting a bug in writing the PCR pid into the PMT in for reporting a bug in writing the PCR pid into the PMT in

View File

@ -9575,3 +9575,5 @@ Video Disk Recorder Revision History
- Somewhere down the road the 'x' bit of Doxyfile.filter got lost, so the - Somewhere down the road the 'x' bit of Doxyfile.filter got lost, so the
Makefile now makes sure it is set before calling doxygen. Makefile now makes sure it is set before calling doxygen.
- Using strgetlast() in more places. - Using strgetlast() in more places.
- Fixed a crash in the SVDRP command CLRE in case a non-existing channel number is
given (reported by Manuel Reimer).

View File

@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured * and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection. * graphical interface that sits on top of an SVDRP connection.
* *
* $Id: svdrp.c 5.1 2020/12/26 15:49:01 kls Exp $ * $Id: svdrp.c 5.2 2021/01/01 21:23:00 kls Exp $
*/ */
#include "svdrp.h" #include "svdrp.h"
@ -1301,8 +1301,10 @@ void cSVDRPServer::CmdCLRE(const char *Option)
tChannelID ChannelID = tChannelID::InvalidID; tChannelID ChannelID = tChannelID::InvalidID;
if (isnumber(Option)) { if (isnumber(Option)) {
int o = strtol(Option, NULL, 10); int o = strtol(Option, NULL, 10);
if (o >= 1 && o <= cChannels::MaxNumber()) if (o >= 1 && o <= cChannels::MaxNumber()) {
ChannelID = Channels->GetByNumber(o)->GetChannelID(); if (const cChannel *Channel = Channels->GetByNumber(o))
ChannelID = Channel->GetChannelID();
}
} }
else { else {
ChannelID = tChannelID::FromString(Option); ChannelID = tChannelID::FromString(Option);