From 3bb64bc1ccba287d6667b8d2cbddd5b74916005b Mon Sep 17 00:00:00 2001 From: Mike Donahue Date: Thu, 12 Sep 2019 01:07:21 -0400 Subject: [PATCH] Fix CFRelease crash in ASTextNode2 (#1669) - Add null check before CFRelease --- Source/ASTextNode2.mm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/Source/ASTextNode2.mm b/Source/ASTextNode2.mm index 1d589503..cb6a9541 100644 --- a/Source/ASTextNode2.mm +++ b/Source/ASTextNode2.mm @@ -674,11 +674,17 @@ static NSArray *DefaultLinkAttributeNames() { CTLineRef truncationTokenLine = CTLineCreateWithAttributedString((CFAttributedStringRef)_truncationAttributedText); CFIndex truncationTokenLineGlyphCount = truncationTokenLine ? CTLineGetGlyphCount(truncationTokenLine) : 0; - CFRelease(truncationTokenLine); + + if (truncationTokenLine) { + CFRelease(truncationTokenLine); + } CTLineRef additionalTruncationTokenLine = CTLineCreateWithAttributedString((CFAttributedStringRef)_additionalTruncationMessage); - CFIndex additionalTruncationTokenLineGlyphCount = additionalTruncationTokenLine ? CTLineGetGlyphCount(additionalTruncationTokenLine) : 0; - CFRelease(additionalTruncationTokenLine); + CFIndex additionalTruncationTokenLineGlyphCount = additionalTruncationTokenLine ? CTLineGetGlyphCount(additionalTruncationTokenLine) : 0; + + if (additionalTruncationTokenLine) { + CFRelease(additionalTruncationTokenLine); + } switch (_textContainer.truncationType) { case ASTextTruncationTypeStart: {