aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/archive/decoderarchivefactory.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-12-20 21:14:04 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2019-12-20 21:14:04 +0000
commit4ea83d5fe1df7942ca1eabf5fb88dbb72dc15661 (patch)
treeeae4349e1dcea1efc413482a776b8c2a47668336 /src/plugins/Input/archive/decoderarchivefactory.cpp
parente5be6133ab10637f4f9e0f7131e66095a30c8688 (diff)
downloadqmmp-4ea83d5fe1df7942ca1eabf5fb88dbb72dc15661.tar.gz
qmmp-4ea83d5fe1df7942ca1eabf5fb88dbb72dc15661.tar.bz2
qmmp-4ea83d5fe1df7942ca1eabf5fb88dbb72dc15661.zip
fixed crash on encrypted archives (#1027)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9155 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/archive/decoderarchivefactory.cpp')
-rw-r--r--src/plugins/Input/archive/decoderarchivefactory.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/Input/archive/decoderarchivefactory.cpp b/src/plugins/Input/archive/decoderarchivefactory.cpp
index e96bbf007..6f6d0bf87 100644
--- a/src/plugins/Input/archive/decoderarchivefactory.cpp
+++ b/src/plugins/Input/archive/decoderarchivefactory.cpp
@@ -80,8 +80,17 @@ QList<TrackInfo *> DecoderArchiveFactory::createPlayList(const QString &path, Tr
qWarning("DecoderArchiveFactory: unable to open archive; libarchive error: %s", archive_error_string(a));
return list;
}
+
while (archive_read_next_header(a, &entry) == ARCHIVE_OK)
{
+ if(archive_read_has_encrypted_entries(a) == 1) //skip encrypted archives
+ {
+ qDeleteAll(list);
+ list.clear();
+ archive_read_free(a);
+ return list;
+ }
+
if(archive_entry_filetype(entry) == AE_IFREG)
{
QString filePath = QString::fromLocal8Bit(archive_entry_pathname(entry));