From c438d38ea70aa160bcea30bfdcdf684433004a85 Mon Sep 17 00:00:00 2001 From: Harry <109690906+harry-signal@users.noreply.github.com> Date: Tue, 1 Aug 2023 09:37:02 -0700 Subject: [PATCH] Prevent initializing styled body with out of range styles --- .../src/Messages/BodyRanges/StyleOnlyMessageBody.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/SignalServiceKit/src/Messages/BodyRanges/StyleOnlyMessageBody.swift b/SignalServiceKit/src/Messages/BodyRanges/StyleOnlyMessageBody.swift index 27eef6d839..ed64a1de53 100644 --- a/SignalServiceKit/src/Messages/BodyRanges/StyleOnlyMessageBody.swift +++ b/SignalServiceKit/src/Messages/BodyRanges/StyleOnlyMessageBody.swift @@ -57,7 +57,13 @@ public class StyleOnlyMessageBody: NSObject, Codable { public init(text: String, collapsedStyles: [NSRangedValue]) { self.text = text - self.collapsedStyles = collapsedStyles + let textRange = NSRange(location: 0, length: (text as NSString).length) + self.collapsedStyles = collapsedStyles.compactMap { + guard let intersection = $0.range.intersection(textRange), intersection.length > 0 else { + return nil + } + return .init($0.value, range: intersection) + } } public func asMessageBody() -> MessageBody {