From a37ca2a090fae63f71c6344ac2aec22eb2f9eb4e Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Sat, 14 Feb 2026 14:44:31 -0600 Subject: [PATCH] fix: crash in torrent rename dialog after torrent removal (#8425) --- macosx/Torrent.mm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/macosx/Torrent.mm b/macosx/Torrent.mm index 826f253ea..bcd8defc8 100644 --- a/macosx/Torrent.mm +++ b/macosx/Torrent.mm @@ -196,6 +196,7 @@ bool trashDataFile(char const* filename, void* /*user_data*/, tr_error* error) [self setTimeMachineExclude:NO]; tr_torrentRemove(self.fHandle, trashFiles, trashDataFile, nullptr); + _fHandle = nullptr; } - (void)changeDownloadFolderBeforeUsing:(NSString*)folder determinationType:(TorrentDeterminationType)determinationType @@ -821,6 +822,15 @@ bool trashDataFile(char const* filename, void* /*user_data*/, tr_error* error) NSParameterAssert(newName != nil); NSParameterAssert(![newName isEqualToString:@""]); + if (self.fHandle == nullptr) + { + if (completionHandler != nullptr) + { + completionHandler(NO); + } + return; + } + NSDictionary* contextInfo = @{ @"Torrent" : self, @"CompletionHandler" : [completionHandler copy] }; tr_torrentRenamePath(self.fHandle, tr_torrentName(self.fHandle), newName.UTF8String, renameCallback, (__bridge_retained void*)(contextInfo)); @@ -834,6 +844,15 @@ bool trashDataFile(char const* filename, void* /*user_data*/, tr_error* error) NSParameterAssert(newName != nil); NSParameterAssert(![newName isEqualToString:@""]); + if (self.fHandle == nullptr) + { + if (completionHandler != nullptr) + { + completionHandler(NO); + } + return; + } + NSDictionary* contextInfo = @{ @"Torrent" : self, @"Nodes" : @[ node ], @"CompletionHandler" : [completionHandler copy] }; NSString* oldPath = [node.path stringByAppendingPathComponent:node.name];