diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-10-21 08:09:36 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-10-21 08:09:36 +0000 |
| commit | 4fbe9116ecc9defaad3551e8c19c622a49fc9925 (patch) | |
| tree | e76c78ca7471d2371fb71c4b9be7bcba308cb6c0 /src | |
| parent | 5cb61b21b26e8a9a93915fa60c4064d39e3ccb08 (diff) | |
| download | qmmp-4fbe9116ecc9defaad3551e8c19c622a49fc9925.tar.gz qmmp-4fbe9116ecc9defaad3551e8c19c622a49fc9925.tar.bz2 qmmp-4fbe9116ecc9defaad3551e8c19c622a49fc9925.zip | |
fixed possible null-pointer dereference in transport plugins
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2958 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/Transports/http/httpstreamreader.cpp | 10 | ||||
| -rw-r--r-- | src/plugins/Transports/http/httpstreamreader.h | 4 | ||||
| -rw-r--r-- | src/plugins/Transports/mms/mmsstreamreader.cpp | 7 | ||||
| -rw-r--r-- | src/plugins/Transports/mms/mmsstreamreader.h | 4 |
4 files changed, 15 insertions, 10 deletions
diff --git a/src/plugins/Transports/http/httpstreamreader.cpp b/src/plugins/Transports/http/httpstreamreader.cpp index c0e02ddb0..ba4bce35b 100644 --- a/src/plugins/Transports/http/httpstreamreader.cpp +++ b/src/plugins/Transports/http/httpstreamreader.cpp @@ -28,6 +28,7 @@ #include <qmmp/qmmp.h> #include <qmmp/statehandler.h> #include <qmmp/inputsource.h> +#include "httpinputsource.h" #include "httpstreamreader.h" //curl callbacks @@ -104,10 +105,9 @@ int curl_progress(void *pointer, double dltotal, double dlnow, double ultotal, d return 0; } - -HttpStreamReader::HttpStreamReader(const QString &url, QObject *parent) - : QIODevice(parent) +HttpStreamReader::HttpStreamReader(const QString &url, HTTPInputSource *parent) : QIODevice(parent) { + m_parent = parent; m_url = url; curl_global_init(CURL_GLOBAL_ALL); m_stream.buf_fill = 0; @@ -373,8 +373,8 @@ void HttpStreamReader::checkBuffer() metaData.insert(Qmmp::GENRE, m_stream.header.value("icy-genre")); } metaData.insert(Qmmp::URL, m_url); - (qobject_cast<InputSource *>(parent()))->addMetaData(metaData); - (qobject_cast<InputSource *>(parent()))->addStreamInfo(m_stream.header); + m_parent->addMetaData(metaData); + m_parent->addStreamInfo(m_stream.header); } emit ready(); } diff --git a/src/plugins/Transports/http/httpstreamreader.h b/src/plugins/Transports/http/httpstreamreader.h index 7bf05f926..1159dfe1f 100644 --- a/src/plugins/Transports/http/httpstreamreader.h +++ b/src/plugins/Transports/http/httpstreamreader.h @@ -35,6 +35,7 @@ class QTextCodec; class QFileInfo; class DownloadThread; +class HTTPInputSource; /*! @internal * @author Ilya Kotov <forkotov02@hotmail.ru> @@ -57,7 +58,7 @@ class HttpStreamReader : public QIODevice { Q_OBJECT public: - HttpStreamReader(const QString &url, QObject *parent = 0); + HttpStreamReader(const QString &url, HTTPInputSource *parent); virtual ~HttpStreamReader(); @@ -105,6 +106,7 @@ private: long m_buffer_size; QTextCodec *m_codec; DownloadThread *m_thread; + HTTPInputSource *m_parent; #ifdef WITH_ENCA EncaAnalyser m_analyser; #endif diff --git a/src/plugins/Transports/mms/mmsstreamreader.cpp b/src/plugins/Transports/mms/mmsstreamreader.cpp index 008fbe5a5..3b3d90589 100644 --- a/src/plugins/Transports/mms/mmsstreamreader.cpp +++ b/src/plugins/Transports/mms/mmsstreamreader.cpp @@ -24,11 +24,12 @@ #include <qmmp/qmmp.h> #include <qmmp/statehandler.h> #include <qmmp/inputsource.h> +#include "mmsinputsource.h" #include "mmsstreamreader.h" -MMSStreamReader::MMSStreamReader(const QString &url, QObject *parent) - : QIODevice(parent) +MMSStreamReader::MMSStreamReader(const QString &url, MMSInputSource *parent) : QIODevice(parent) { + m_parent = parent; m_url = url; m_handle = 0; m_aborted = false; @@ -197,7 +198,7 @@ void MMSStreamReader::checkBuffer() qDebug("MMSStreamReader: ready"); QMap<Qmmp::MetaData, QString> metaData; metaData.insert(Qmmp::URL, m_url); - (qobject_cast<InputSource *>(parent()))->addMetaData(metaData); + m_parent->addMetaData(metaData); emit ready(); } else if (!m_ready) diff --git a/src/plugins/Transports/mms/mmsstreamreader.h b/src/plugins/Transports/mms/mmsstreamreader.h index a3bb15e7a..6a95d65f9 100644 --- a/src/plugins/Transports/mms/mmsstreamreader.h +++ b/src/plugins/Transports/mms/mmsstreamreader.h @@ -31,6 +31,7 @@ class QFileInfo; class DownloadThread; +class MMSInputSource; /*! @internal * @author Ilya Kotov <forkotov02@hotmail.ru> @@ -39,7 +40,7 @@ class MMSStreamReader : public QIODevice { Q_OBJECT public: - MMSStreamReader(const QString &url, QObject *parent = 0); + MMSStreamReader(const QString &url, MMSInputSource *parent); ~MMSStreamReader(); @@ -81,6 +82,7 @@ private: qint64 m_buffer_at; bool m_ready; DownloadThread *m_thread; + MMSInputSource *m_parent; }; class DownloadThread : public QThread |
