diff options
| -rw-r--r-- | src/plugins/Input/cue/cueparser.cpp | 8 | ||||
| -rw-r--r-- | src/plugins/Input/flac/cueparser.cpp | 8 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/cueparser.cpp | 8 |
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); } |
