From 09bc14cc574357574fdc80194b377adc08871c44 Mon Sep 17 00:00:00 2001 From: "Artem S. Tashkinov" Date: Tue, 3 Mar 2015 00:22:45 +0500 Subject: [PATCH] Let's check if the torrent file can actually be opened before passing it to libtorrent If we don't have enough permissions, libtorrent will spew a pretty useless, irrelevant and almost wrong message: "Failed to load the torrent: torrent file is not a dictionary" --- src/gui/addnewtorrentdialog.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gui/addnewtorrentdialog.cpp b/src/gui/addnewtorrentdialog.cpp index fe7ff46b3..4c74a1973 100644 --- a/src/gui/addnewtorrentdialog.cpp +++ b/src/gui/addnewtorrentdialog.cpp @@ -177,6 +177,12 @@ bool AddNewTorrentDialog::loadTorrent(const QString& torrent_path) return false; } + QFileInfo fileinfo(m_filePath); + if (!fileinfo.isReadable()) { + MessageBoxRaised::critical(0, tr("I/O Error"), tr("The torrent file cannot be read from the disk. Probably you don't have enough permissions.")); + return false; + } + m_hasMetadata = true; QString error; m_torrentInfo = BitTorrent::TorrentInfo::loadFromFile(m_filePath, error);