From b1470c4a3eaa8ce7eb4b33e7c9e4a421a404795a Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Wed, 25 Jan 2017 18:11:46 +0000 Subject: 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 --- src/qmmp/qmmpaudioengine.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src') 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("://")) -- cgit v1.2.3-13-gbd6f