From fb7a7fe3a2991f66bcbac75e4748e900e6a025d0 Mon Sep 17 00:00:00 2001 From: Rolf Ahrenberg Date: Thu, 15 Jan 2015 00:10:22 +0200 Subject: [PATCH] Fixed parsing of the setup values. --- HISTORY | 1 + discover.c | 3 ++- satip.c | 13 ++++++++----- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/HISTORY b/HISTORY index 997defe..464685e 100644 --- a/HISTORY +++ b/HISTORY @@ -101,3 +101,4 @@ VDR Plugin 'satip' Revision History 2015-01-18: Version 1.0.2 - Added configurable CI slots. +- Fixed parsing of the setup values. diff --git a/discover.c b/discover.c index 2a53ffd..08a4c54 100644 --- a/discover.c +++ b/discover.c @@ -235,7 +235,7 @@ void cSatipDiscover::AddServer(const char *addrP, const char *modelP, const char cMutexLock MutexLock(&mutexM); #ifdef USE_SINGLE_MODEL_SERVERS_ONLY int n = 0; - char *s, *p = (char *)modelP; + char *s, *p = strdup(modelP); char *r = strtok_r(p, ",", &s); while (r) { r = skipspace(r); @@ -249,6 +249,7 @@ void cSatipDiscover::AddServer(const char *addrP, const char *modelP, const char DELETENULL(tmp); r = strtok_r(NULL, ",\n", &s); } + FREE_POINTER(p); #else cSatipServer *tmp = new cSatipServer(addrP, modelP, descP); // Validate against existing servers diff --git a/satip.c b/satip.c index 639a242..5630760 100644 --- a/satip.c +++ b/satip.c @@ -198,7 +198,7 @@ void cPluginSatip::ParseServer(const char *paramP) { debug1("%s (%s)", __PRETTY_FUNCTION__, paramP); int n = 0; - char *s, *p = (char *)paramP; + char *s, *p = strdup(paramP); char *r = strtok_r(p, ";", &s); while (r) { r = skipspace(r); @@ -233,13 +233,14 @@ void cPluginSatip::ParseServer(const char *paramP) ++n; r = strtok_r(NULL, ";", &s); } + FREE_POINTER(p); } int cPluginSatip::ParseCicams(const char *valueP, int *cicamsP) { debug1("%s (%s,)", __PRETTY_FUNCTION__, valueP); int n = 0; - char *s, *p = (char *)valueP; + char *s, *p = strdup(valueP); char *r = strtok_r(p, " ", &s); while (r) { r = skipspace(r); @@ -247,8 +248,9 @@ int cPluginSatip::ParseCicams(const char *valueP, int *cicamsP) if (n < MAX_CICAM_COUNT) { cicamsP[n++] = atoi(r); } - r = strtok_r(NULL, " \n", &s); + r = strtok_r(NULL, " ", &s); } + FREE_POINTER(p); return n; } @@ -256,7 +258,7 @@ int cPluginSatip::ParseSources(const char *valueP, int *sourcesP) { debug1("%s (%s,)", __PRETTY_FUNCTION__, valueP); int n = 0; - char *s, *p = (char *)valueP; + char *s, *p = strdup(valueP); char *r = strtok_r(p, " ", &s); while (r) { r = skipspace(r); @@ -264,8 +266,9 @@ int cPluginSatip::ParseSources(const char *valueP, int *sourcesP) if (n < MAX_DISABLED_SOURCES_COUNT) { sourcesP[n++] = cSource::FromString(r); } - r = strtok_r(NULL, " \n", &s); + r = strtok_r(NULL, " ", &s); } + FREE_POINTER(p); return n; }