fix(MMCZip): ignore invalid file paths in extractSubDir
Ignores files that have an absolute path or a path beginning with .. Signed-off-by: Lenny McLennington <lenny@sneed.church>
This commit is contained in:
parent
7b547c842c
commit
9f457e0ce6
@ -292,10 +292,15 @@ std::optional<QStringList> MMCZip::extractSubDir(QuaZip *zip, const QString & su
|
|||||||
do
|
do
|
||||||
{
|
{
|
||||||
QString name = zip->getCurrentFileName();
|
QString name = zip->getCurrentFileName();
|
||||||
if(!name.startsWith(subdir))
|
if(!QDir::cleanPath(name).startsWith(subdir))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (QDir::isAbsolutePath(name) || QDir::cleanPath(name).startsWith(".."))
|
||||||
|
{
|
||||||
|
qDebug() << "extractSubDir: Skipping file that tries to place itself in an absolute location or in a parent directory.";
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
name.remove(0, subdir.size());
|
name.remove(0, subdir.size());
|
||||||
auto original_name = name;
|
auto original_name = name;
|
||||||
|
Loading…
Reference in New Issue
Block a user