summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2021-01-02 15:18:06 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2021-01-02 15:18:06 +0100
commit5f1e08f606d3e2b136edb8e1a241f674e03deedc (patch)
treedd83fe436de84786fe0b549b8d3edb0dc9f618ab
parent9f4c5cd785105855bd73e58154bf7830bee4dd9e (diff)
downloadvdr-5f1e08f606d3e2b136edb8e1a241f674e03deedc.tar.gz
vdr-5f1e08f606d3e2b136edb8e1a241f674e03deedc.tar.bz2
Fixed a crash in the SVDRP command CLRE in case a non-existing channel number is given
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY2
-rw-r--r--svdrp.c8
3 files changed, 9 insertions, 3 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 5e776738..b983bf74 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -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 fixing compatibility with current versions of glibc
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>
for reporting a bug in writing the PCR pid into the PMT in
diff --git a/HISTORY b/HISTORY
index 32edcc8b..089f95ca 100644
--- a/HISTORY
+++ b/HISTORY
@@ -9568,3 +9568,5 @@ Video Disk Recorder Revision History
- Fixed strreplace() to handle NULL strings (reported by Jürgen Schneider).
- Somewhere down the road the 'x' bit of Doxyfile.filter got lost, so the
Makefile now makes sure it is set before calling doxygen.
+- Fixed a crash in the SVDRP command CLRE in case a non-existing channel number is
+ given (reported by Manuel Reimer).
diff --git a/svdrp.c b/svdrp.c
index 38bd8bb1..767fc6f3 100644
--- a/svdrp.c
+++ b/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.43 2020/06/22 20:59:49 kls Exp $
+ * $Id: svdrp.c 4.43.1.1 2021/01/02 15:18:06 kls Exp $
*/
#include "svdrp.h"
@@ -1301,8 +1301,10 @@ void cSVDRPServer::CmdCLRE(const char *Option)
tChannelID ChannelID = tChannelID::InvalidID;
if (isnumber(Option)) {
int o = strtol(Option, NULL, 10);
- if (o >= 1 && o <= cChannels::MaxNumber())
- ChannelID = Channels->GetByNumber(o)->GetChannelID();
+ if (o >= 1 && o <= cChannels::MaxNumber()) {
+ if (const cChannel *Channel = Channels->GetByNumber(o))
+ ChannelID = Channel->GetChannelID();
+ }
}
else {
ChannelID = tChannelID::FromString(Option);