aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui
diff options
context:
space:
mode:
authorRachel Powers <508861+Ryex@users.noreply.github.com>2022-12-09 17:21:40 -0700
committerRachel Powers <508861+Ryex@users.noreply.github.com>2022-12-09 17:21:40 -0700
commit8f3023776521a8b475e3a76edb4f1423d6368851 (patch)
tree476c2421733b5c7a90544d8be700a3a946dbb49a /launcher/ui
parentcb0339b4920011a915fcdb77820b55211c0103fc (diff)
downloadPrismLauncher-8f3023776521a8b475e3a76edb4f1423d6368851.tar.gz
PrismLauncher-8f3023776521a8b475e3a76edb4f1423d6368851.tar.bz2
PrismLauncher-8f3023776521a8b475e3a76edb4f1423d6368851.zip
fix: prevent potental crash if droping non local files
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Diffstat (limited to 'launcher/ui')
-rw-r--r--launcher/ui/dialogs/BlockedModsDialog.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/launcher/ui/dialogs/BlockedModsDialog.cpp b/launcher/ui/dialogs/BlockedModsDialog.cpp
index 346ceff2..8b49bd1a 100644
--- a/launcher/ui/dialogs/BlockedModsDialog.cpp
+++ b/launcher/ui/dialogs/BlockedModsDialog.cpp
@@ -84,7 +84,15 @@ void BlockedModsDialog::dragEnterEvent(QDragEnterEvent* e)
void BlockedModsDialog::dropEvent(QDropEvent* e)
{
- for (const QUrl& url : e->mimeData()->urls()) {
+ for (QUrl& url : e->mimeData()->urls()) {
+ if (url.scheme().isEmpty()) { // ensure isLocalFile() works correctly
+ url.setScheme("file");
+ }
+
+ if (!url.isLocalFile()) { // can't drop external files here.
+ continue;
+ }
+
QString filePath = url.toLocalFile();
qDebug() << "[Blocked Mods Dialog] Dropped file:" << filePath;
addHashTask(filePath);