From 26e220e00312f2d1c98652ee8d662bd524dcf898 Mon Sep 17 00:00:00 2001 From: Vladimir Golovnev Date: Wed, 20 Apr 2022 10:44:21 +0300 Subject: [PATCH] Avoid dereferencing null pointers PR #16896. Closes #16884 and similar issues. --- src/base/bittorrent/session.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index c017c1d9a..bf2f89be7 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -3982,7 +3982,8 @@ void Session::handleTorrentMetadataReceived(TorrentImpl *const torrent) if (!torrentExportDirectory().isEmpty()) { #ifdef QBT_USES_LIBTORRENT2 - const TorrentInfo torrentInfo {*torrent->nativeHandle().torrent_file_with_hashes()}; + const std::shared_ptr completeTorrentInfo = torrent->nativeHandle().torrent_file_with_hashes(); + const TorrentInfo torrentInfo {*(completeTorrentInfo ? completeTorrentInfo : torrent->nativeHandle().torrent_file())}; #else const TorrentInfo torrentInfo {*torrent->nativeHandle().torrent_file()}; #endif @@ -4038,7 +4039,8 @@ void Session::handleTorrentFinished(TorrentImpl *const torrent) if (!finishedTorrentExportDirectory().isEmpty()) { #ifdef QBT_USES_LIBTORRENT2 - const TorrentInfo torrentInfo {*torrent->nativeHandle().torrent_file_with_hashes()}; + const std::shared_ptr completeTorrentInfo = torrent->nativeHandle().torrent_file_with_hashes(); + const TorrentInfo torrentInfo {*(completeTorrentInfo ? completeTorrentInfo : torrent->nativeHandle().torrent_file())}; #else const TorrentInfo torrentInfo {*torrent->nativeHandle().torrent_file()}; #endif