aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Input/cue/cueparser.cpp8
-rw-r--r--src/plugins/Input/flac/cueparser.cpp8
-rw-r--r--src/plugins/Input/wavpack/cueparser.cpp8
3 files changed, 21 insertions, 3 deletions
diff --git a/src/plugins/Input/cue/cueparser.cpp b/src/plugins/Input/cue/cueparser.cpp
index fe2a555dd..5a95265d5 100644
--- a/src/plugins/Input/cue/cueparser.cpp
+++ b/src/plugins/Input/cue/cueparser.cpp
@@ -249,7 +249,7 @@ const QMap<Qmmp::ReplayGainKey, double> CUEParser::replayGain(int track) const
QStringList CUEParser::splitLine(const QString &line)
{
- //qDebug("row string = %s",qPrintable(line));
+ //qDebug("raw string = %s",qPrintable(line));
QStringList list;
QString buf = line.trimmed();
if (buf.isEmpty())
@@ -260,6 +260,12 @@ QStringList CUEParser::splitLine(const QString &line)
if (buf.startsWith('"'))
{
int end = buf.indexOf('"',1);
+ if(end == -1) //ignore invalid line
+ {
+ list.clear();
+ qWarning("CUEParser: unable to parse line: %s",qPrintable(line));
+ return list;
+ }
list << buf.mid (1, end - 1);
buf.remove (0, end+1);
}
diff --git a/src/plugins/Input/flac/cueparser.cpp b/src/plugins/Input/flac/cueparser.cpp
index c014c49ee..d5a814582 100644
--- a/src/plugins/Input/flac/cueparser.cpp
+++ b/src/plugins/Input/flac/cueparser.cpp
@@ -170,7 +170,7 @@ const QMap<Qmmp::ReplayGainKey, double> CUEParser::replayGain(int track) const
QStringList CUEParser::splitLine(const QString &line)
{
- //qDebug("row string = %s",qPrintable(line));
+ //qDebug("raw string = %s",qPrintable(line));
QStringList list;
QString buf = line.trimmed();
if (buf.isEmpty())
@@ -181,6 +181,12 @@ QStringList CUEParser::splitLine(const QString &line)
if (buf.startsWith('"'))
{
int end = buf.indexOf('"',1);
+ if(end == -1) //ignore invalid line
+ {
+ list.clear();
+ qWarning("CUEParser: unable to parse line: %s",qPrintable(line));
+ return list;
+ }
list << buf.mid (1, end - 1);
buf.remove (0, end+1);
}
diff --git a/src/plugins/Input/wavpack/cueparser.cpp b/src/plugins/Input/wavpack/cueparser.cpp
index 36dbacc3c..eabd54372 100644
--- a/src/plugins/Input/wavpack/cueparser.cpp
+++ b/src/plugins/Input/wavpack/cueparser.cpp
@@ -170,7 +170,7 @@ const QMap<Qmmp::ReplayGainKey, double> CUEParser::replayGain(int track) const
QStringList CUEParser::splitLine(const QString &line)
{
- //qDebug("row string = %s",qPrintable(line));
+ //qDebug("raw string = %s",qPrintable(line));
QStringList list;
QString buf = line.trimmed();
if (buf.isEmpty())
@@ -181,6 +181,12 @@ QStringList CUEParser::splitLine(const QString &line)
if (buf.startsWith('"'))
{
int end = buf.indexOf('"',1);
+ if(end == -1) //ignore invalid line
+ {
+ list.clear();
+ qWarning("CUEParser: unable to parse line: %s",qPrintable(line));
+ return list;
+ }
list << buf.mid (1, end - 1);
buf.remove (0, end+1);
}