aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Transports/http
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-10-21 08:09:36 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-10-21 08:09:36 +0000
commit4fbe9116ecc9defaad3551e8c19c622a49fc9925 (patch)
treee76c78ca7471d2371fb71c4b9be7bcba308cb6c0 /src/plugins/Transports/http
parent5cb61b21b26e8a9a93915fa60c4064d39e3ccb08 (diff)
downloadqmmp-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/plugins/Transports/http')
-rw-r--r--src/plugins/Transports/http/httpstreamreader.cpp10
-rw-r--r--src/plugins/Transports/http/httpstreamreader.h4
2 files changed, 8 insertions, 6 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