From f0e837fde4470e3b463723bc9e016b85a6149dd1 Mon Sep 17 00:00:00 2001 From: Cole Feuer <13751213+tagavari@users.noreply.github.com> Date: Thu, 11 Aug 2022 17:56:21 -0400 Subject: [PATCH] Catch NSException while unarchiving message text --- AirMessage/Database/DatabaseConverter.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/AirMessage/Database/DatabaseConverter.swift b/AirMessage/Database/DatabaseConverter.swift index 3e24bcc..d586039 100644 --- a/AirMessage/Database/DatabaseConverter.swift +++ b/AirMessage/Database/DatabaseConverter.swift @@ -459,7 +459,17 @@ class DatabaseConverter { } //Retrieve the archive contents - guard let attributedString = unarchiver.decodeObject() as? NSAttributedString else { + var decodedObject: Any? + do { + try ObjC.catchException { + decodedObject = unarchiver.decodeObject() + } + } catch { + LogManager.log("Encountered an exception while decoding object for message \(logID ?? "unknown"): \(error)", level: .notice) + return nil + } + + guard let attributedString = decodedObject as? NSAttributedString else { LogManager.log("Failed to decode object for message \(logID ?? "unknown")", level: .notice) return nil }