From bc4d26e6f7d16c547486f254abe60abf2f9a5c0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20M=C3=BCller?= Date: Thu, 8 Aug 2024 23:18:34 +0200 Subject: [PATCH] Fix potential crash on invalid preview size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marcel Müller --- NextcloudTalk/BaseChatTableViewCell+File.swift | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/NextcloudTalk/BaseChatTableViewCell+File.swift b/NextcloudTalk/BaseChatTableViewCell+File.swift index 4a1b4c904..f9d49c32b 100644 --- a/NextcloudTalk/BaseChatTableViewCell+File.swift +++ b/NextcloudTalk/BaseChatTableViewCell+File.swift @@ -152,12 +152,17 @@ extension BaseChatTableViewCell { self.filePreviewActivityIndicator?.isHidden = true self.filePreviewActivityIndicator?.stopAnimating() - imageView.layer.borderColor = UIColor.secondarySystemFill.cgColor - imageView.layer.borderWidth = 1 - let imageSize = CGSize(width: image.size.width * image.scale, height: image.size.height * image.scale) let previewSize = BaseChatTableViewCell.getPreviewSize(from: imageSize, isMediaFile) + if !previewSize.width.isFinite || !previewSize.height.isFinite { + self.showFallbackIcon(for: message) + return + } + + imageView.layer.borderColor = UIColor.secondarySystemFill.cgColor + imageView.layer.borderWidth = 1 + self.filePreviewImageViewHeightConstraint?.constant = previewSize.height self.filePreviewImageViewWidthConstraint?.constant = previewSize.width