diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-01-25 18:11:46 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-01-25 18:11:46 +0000 |
| commit | b1470c4a3eaa8ce7eb4b33e7c9e4a421a404795a (patch) | |
| tree | 1b65b67f8444e8c67ed8938fca8a10415969969a /src | |
| parent | 0fc031da9ab10d92b2c21f11239de7868340aa85 (diff) | |
| download | qmmp-b1470c4a3eaa8ce7eb4b33e7c9e4a421a404795a.tar.gz qmmp-b1470c4a3eaa8ce7eb4b33e7c9e4a421a404795a.tar.bz2 qmmp-b1470c4a3eaa8ce7eb4b33e7c9e4a421a404795a.zip | |
fixed possible segmentation fault inside qmmp audio engine (#896)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7003 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
| -rw-r--r-- | src/qmmp/qmmpaudioengine.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/qmmp/qmmpaudioengine.cpp b/src/qmmp/qmmpaudioengine.cpp index 4de20ed72..0b7aa8aa5 100644 --- a/src/qmmp/qmmpaudioengine.cpp +++ b/src/qmmp/qmmpaudioengine.cpp @@ -134,13 +134,9 @@ bool QmmpAudioEngine::enqueue(InputSource *source) if(!factory && !source->url().contains("://")) factory = Decoder::findByFilePath(source->url(), m_settings->determineFileTypeByContent()); if(!factory) - { - if((factory = Decoder::findByMime(source->contentType()))) - { - if(!factory->canDecode(source->ioDevice())) - factory = 0; - } - } + factory = Decoder::findByMime(source->contentType()); + if(factory && !factory->properties().noInput && source->ioDevice() && source->url().contains("://")) + factory = (factory->canDecode(source->ioDevice()) ? factory : 0); if(!factory && source->ioDevice() && source->url().contains("://")) //ignore content of local files factory = Decoder::findByContent(source->ioDevice()); if(!factory && source->url().contains("://")) |
