diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-04-13 16:57:42 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-04-13 16:57:42 +0000 |
| commit | 772db7b59d06dc45a83d6142948567c54a6939e6 (patch) | |
| tree | 71b8c7c5c1253b7ea47c5191d19e9ec5fbcf3a4d | |
| parent | 4ff60141044da7a901c20ceb5edbd22d382ff990 (diff) | |
| download | qmmp-772db7b59d06dc45a83d6142948567c54a6939e6.tar.gz qmmp-772db7b59d06dc45a83d6142948567c54a6939e6.tar.bz2 qmmp-772db7b59d06dc45a83d6142948567c54a6939e6.zip | |
fixed unquoted string parsing in cuesheets
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2711 90c681e8-e032-0410-971d-27865f9a5e38
| -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); } |
