From 3b6d069b69cf54d20d6cb5644587a5391fc16e30 Mon Sep 17 00:00:00 2001 From: 25harsh Date: Thu, 5 Feb 2026 12:56:26 +0530 Subject: [PATCH 1/2] fix(iOS): Add null check for fontName in RCTGetFontWeight to prevent crash --- packages/react-native/React/Views/RCTFont.mm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/react-native/React/Views/RCTFont.mm b/packages/react-native/React/Views/RCTFont.mm index 675f40c3131c..407bf7baceeb 100644 --- a/packages/react-native/React/Views/RCTFont.mm +++ b/packages/react-native/React/Views/RCTFont.mm @@ -54,14 +54,16 @@ RCTFontWeight RCTGetFontWeight(UIFont *font) }); NSString *fontName = font.fontName; - NSInteger i = 0; - for (NSString *suffix in weightSuffixes) { - // CFStringFind is much faster than any variant of rangeOfString: because it does not use a locale. - auto options = kCFCompareCaseInsensitive | kCFCompareAnchored | kCFCompareBackwards; - if (CFStringFind((CFStringRef)fontName, (CFStringRef)suffix, options).location != kCFNotFound) { - return (RCTFontWeight)fontWeights[i].doubleValue; + if (fontName) { + NSInteger i = 0; + for (NSString *suffix in weightSuffixes) { + // CFStringFind is much faster than any variant of rangeOfString: because it does not use a locale. + auto options = kCFCompareCaseInsensitive | kCFCompareAnchored | kCFCompareBackwards; + if (CFStringFind((CFStringRef)fontName, (CFStringRef)suffix, options).location != kCFNotFound) { + return (RCTFontWeight)fontWeights[i].doubleValue; + } + i++; } - i++; } auto traits = (__bridge_transfer NSDictionary *)CTFontCopyTraits((CTFontRef)font); From 2198915c7245f97ae1b307dbdcbdb4ac5b24d4ac Mon Sep 17 00:00:00 2001 From: 25harsh Date: Mon, 23 Mar 2026 14:41:32 +0530 Subject: [PATCH 2/2] fix(iOS): Add nil check for font parameter --- packages/react-native/React/Views/RCTFont.mm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/react-native/React/Views/RCTFont.mm b/packages/react-native/React/Views/RCTFont.mm index 407bf7baceeb..0cbb63bd2c56 100644 --- a/packages/react-native/React/Views/RCTFont.mm +++ b/packages/react-native/React/Views/RCTFont.mm @@ -15,6 +15,10 @@ RCTFontWeight RCTGetFontWeight(UIFont *font) { + if (!font) { + return UIFontWeightRegular; + } + static NSArray *weightSuffixes; static NSArray *fontWeights; static dispatch_once_t onceToken;